我想从我的Firebase实时数据库中获取数据,但是我只想获取包含当前用户UID的数据。
请参见该图以获取数据库结构:
我无法从文档https://firebase.google.com/docs/database/web/lists-of-data
中了解到Firebase查询/排序的功能。// Gets all chats
return firebase.database().ref(`chat`);
// would like to do something like this
let userId = firebase.auth().currentUser.uid
firebase.database().ref('/chat/' + userId).once('value')
将感谢您提供帮助或解决此问题的提示。
答案 0 :(得分:0)
无法直接基于UID查询聊天,因为键 end 带有UID,并且不以它们开头。这是预期的行为,如果您以尝试的方式解析密钥,我会认为这是一种代码味道。
请保留每个用户的聊天ID列表。
userChats
uid1
chatid1: true
chatid2: true
uid2
chatid2: true
这样,您可以从/users/$uid
加载用户的聊天ID,然后加载每个单独的聊天。后者的速度不像某些开发人员所想的那样慢,因为Firebase通过单个连接流水线处理这些请求。参见http://stackoverflow.com/questions/35931526/speed-up-fetching-posts-for-my-social-network-app-by-using-query-instead-of-obse/35932786#35932786