javascript - 仅从 firebase 实时数据库获取当前用户数据

标签 javascript firebase firebase-realtime-database

我想从我的 firebase 实时数据库中获取数据,但我只想获取包含当前用户 UID 的数据。

数据库结构见图片:

picture of the db, explains the problem

我没有从文档中了解 firebase 查询/排序的窍门:https://firebase.google.com/docs/database/web/lists-of-data

// 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')

对于解决此问题的任何帮助或提示,我们将不胜感激。

最佳答案

无法直接根据 UID 查询聊天记录,因为键以 UID 结尾,而不是以 UID 开头。这是预期的行为,如果您以您似乎正在尝试的方式解析 key ,我会认为这是一种代码味道。

相反,保留每个用户的聊天 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

关于javascript - 仅从 firebase 实时数据库获取当前用户数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51674553/

相关文章:

javascript - Firebase 身份验证数据库

ios - Swift Firebase 规则权限在observeSingleEvent 时被拒绝

java - 如何以正确的方式将java对象写入firebase?

swift - 如何从 firebase 读取数据

javascript - 当我将图像上传到 firebase 存储并检索下载 url 并显示在 img 标记中但它显示多次时

Javascript:无法根据 2 个数组中的匹配嵌套值创建数组

JavaScript/jQuery 如何选择动态创建的所有音频元素?

javascript - 如何计算起点相同的两条线之间的 Angular ?

ios - Firebase 临时封禁帐号

Firebase - 权限不足,即使我是项目所有者