Firebase,查询“不等于”

Cha*_*het 5 javascript firebase firebase-realtime-database

这是我的数据库结构:

{
  "feeling" : {
    "fake0" : {
      "fake1" : {...},
      "fake2" : {...}
    }
  },
  "profile" : {
    "fake0" : {...},
    "fake1" : {...},
    "fake2" : {...},
    "fake3" : {...}
  }
}
Run Code Online (Sandbox Code Playgroud)

如果登录的用户是“fake0”,他如何获取所有不属于他的个人资料?

我想做类似的事情: ref("/profile", {notEqualTo: ["fake1","fake2"]}).on('once', .....)

也许我的结构不好,告诉我一个更好的,我会改变它:)!

Gis*_*ate 8

这个问题和其他一些类似的问题(Firebase: Query to exclude data based on a condition)以及我对 Firebase 的经验让我相信 Firebase 中没有任何功能可以直接执行此操作。

现在,您可以按属性过滤,这并不完全是您要查找的内容,但它可能对您构建数据库很有用,以便用户配置文件还包含对包含他们的 /users 的引用。因此,您的查询会变得容易得多。您可能还想,如上面链接的另一个 StackOverflow 线程中所述,使用用户 ID 作为键并将其值存储为“true”。这样您就可以通过 ID 检查,如果我没记错的话,这比检查值更容易。

我知道 Firebase 也建议您存储一点冗余信息;关键在于你是否想在写作或阅读时付出努力。