首页 > 解决方案 > Firebase 如何检查除一个之外的所有子节点的更改?

问题描述

我有一个像这样的 Firebase 实时数据库结构:

/users
 -uid
   -34523623452
      c: array
      n: string
   -23452345435
   -77453534535
   history
      h: array
 -uid
 -uid
 -uid

我正在使用此代码检查当前用户内容的更改:

ref.child(uid).on('value', function(snapshot){
      if (snapshot.val() !== null) {
        // do stuff

这种方式虽然它也会在节点发生任何更改时启动history,因为它也在 UID 节点下,我想避免这种情况。不修改数据库树怎么办?

标签: javascriptfirebasefirebase-realtime-database

解决方案


按照 Firebase 文档的建议,您应该避免使用这种数据结构。您最好创建另一个节点来存储用户历史记录并通过其 uid 引用用户:

/users
 -uid
   -34523623452
      c: array
      n: string
   -23452345435
   -77453534535

/history
 -id
   uid
   ...

更多信息在这里:https ://firebase.google.com/docs/database/web/structure-data


推荐阅读