[英]Firebase Realtime Database equalTo query for child in increasing keys
我正在尝试从数据库中获取数据。 但是在我更改了我的 react-native 项目的性能问题代码后,我找不到我想要的查询。 交易是我有这种类型的数据结构。 它在 /root/news/0/coin_name 下。 对于我的每个数据,0 键都像 1,2,3...n 一样增加。 为了更好地理解:
cnh
I
I
--coins
|
|
--news|
|
|--0|
--coin_name='algorand'
...
|--1|
...
我想获取 coin_name 等于'algorand'的数据。 我尝试了一些查询,但没有一个有效。 如果你能帮助我,我将不胜感激。
我试过了:
useEffect(()=>{
const fbdb = async () =>{
await database()
.ref(newsKey)
.orderByChild('year')
.equalTo('2021')
.once('value')
.then(snapshot => {
const data = snapshot.val();
const formattedResponse=formatMarketData(data,show);
return setNews(formattedResponse)
});
};
fbdb();
},[show,year]);
编辑最后我将数据从我的 excel 文件推送到实时数据库,字符串数据的问题解决了,对于年 equalto 查询我应该首先将它解析为 int,在将年值解析为 integer 之后问题也解决了。
我想你在找
await database()
.ref('news')
.orderByChild('coin_name')
.equalTo('algorand')
请注意,尽管这些数字、顺序键通常是 Firebase 中的反模式。要了解原因以及使用按键的更惯用的结构,请阅读Firebase 中的最佳实践:Arrays 。
{ "coins": [ { } ], "news": [ { "coin_name": "algorand", "event_date": "2019-06-24", "exchange": "crypto.com", "month": "6", "year": "2019" }, { "coin_name": "algorand", "event_date": "2021-01-06", "exchange": "bitmart", "month": "1", "year": "2021" }, { "coin_name": "litecoin", "event_date": "2020-12-25", "exchange": "binance qtly", "month": "12", "year": "2020" }, { "coin_name": "litecoin", "event_date": "2021-01-04", "exchange": "coinflex", "month": "1", "year": "2021" }, { "coin_name": "tron", "event_date": "2020-06-20", "exchange": "resfinex", "month": "6", "year": "2020" }, { "coin_name": "tron", "event_date": "2020-07-07", "exchange": "all", "month": "7", "year": "2020" }, { "coin_name": "tron", "event_date": "2020-07-10", "exchange": "phemex", "month": "7", "year": "2020" }, { "coin_name": "tron", "event_date": "2021-04-21", "exchange": "all", "month": "4", "year": "2021" }, { "coin_name": "tron", "event_date": "2021-05-19", "exchange": "phemex", "month": "5", "year": "2021" }, { "coin_name": "tron", "event_date": "2021-06-17", "exchange": "bitpanda", "month": "6", "year": "2021" } ] }
这是数据集的实例
在我对 web 进行所有研究之后,我得出的结论是 firebase 实时数据库 api 不支持具有未知路径的嵌套查询。 我应该在获取所有数据后使用另一个结构或过滤数据(这对于大型数据集来说效率非常低)。 所以我决定尝试仅在没有新闻标签的情况下将 firestore 用于新闻。 我会让你知道这种方法是否有效。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.