javascript - 监听变化取决于嵌套的UID

标签 javascript firebase react-native firebase-realtime-database

我在 Firebase 实时数据库中有以下结构:

myCollection:
 - GAKlajGHAHjgghk
   - value: "My content"
   - users:
     - JAHGHJgjfKSJKKJGKJj
     - OPouiOHUIUOYHSioJhD
     - RJFvkJlkhgJTKghgJGh
 - LUhjkHSLKlkdlkd
   - value: "My content number 2"
   - users:
     - JAHGHJgjfKSJKKJGKJj
     - OPouiOHUIUOYHSioJhD

我想编写一个函数来监听更改和新值

myCollecion 目录中出现一个项目,且其子目录 users 中包含我的用户 UID 时,我应该收到此对象

react 应在以下情况下发生:

  • 新项目将与相应的 UID 一起添加到 myCollection
  • 当现有项目发生更改时

我的代码:

const myRef = firebase
  .database()
  .ref('myCollection/')
  .child('users')
  .orderByKey()
  .equalTo(this.state.user.uid);

myRef.on('value', snapshot => { ... });

上面的代码不起作用。我做错了什么?

最佳答案

您需要执行以下操作:

const myRef = firebase
  .database()
  .ref('myCollection/')
  .child('GAKlajGHAHjgghk')
  .child('users')
  .orderByKey()
  .equalTo(this.state.user.uid);

myRef.on('value', snapshot => { ... });

需要从上到下遍历数据库,不能跳过任何一个节点。在您的数据库中您有:

myCollection/ -> GAKlajGHAHjgghk -> users

关于javascript - 监听变化取决于嵌套的UID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59388233/

相关文章:

java - 一次登录应用程序 - FirebaseAuth

java - 如何获取 firebase 数据库中的特定键并比较它们是否相同?

javascript - Firebase 使用下载 URL 下载图像(不调用存储)

react-native - React Native中的三元运算符

react-native - 检测文本输入上的事件键盘语言 - react 原生

php - 在没有客户端浏览器的情况下将 HTML Canvas 保存为图像

javascript - 在迭代期间在每个容器中复制图像

javascript - 如何从html ng-click调用链接功能方法?

javascript - html嵌套折叠没有 Bootstrap ,jquery

react-native - 从导航器外部向 Drawer Navigator 的 contentComponent 发送参数