json - Firebase 数据库 : how to compare two values

标签 json swift firebase firebase-realtime-database nosql

在我的 Firebase 数据库中,我有一个与此类似的数据结构: firebaseDatabase

帖子 ID (1a3b3c4d5e) 由 ChildByAutoId() 函数生成。 用户 ID (fn394nf9u3) 是用户的 UID。

在我的应用程序中,我有一个 UILabel(作者),我想用创建帖子的用户的“全名”来更新它。

由于我在数据库的用户部分引用了帖子 ID,因此我假设必须有一些代码(if 语句?)来检查该值是否存在,如果存在,则更新标签。

你能帮忙吗?

最佳答案

虽然可以执行查询 (ref.child("Users").queryOrdered(byChild: "Posts/1a3b3c4d5e").queryEqual(toValue:true)),但您需要对每个特定用户的帖子建立一个索引,以允许该查询高效运行。这不是一个可行的策略。

与使用 NoSQL 数据库时一样:如果您需要执行当前数据模型不允许的操作,请更改数据模型以允许该用例。

在这种情况下,可以将用户的 UID 添加到每个帖子,或者将用户名添加到每个帖子(如 Andre 建议)并确定 if/how you deal with user name changes .

在 Firebase 和 Firestore 等 NoSQL 数据库中,在两个方向上拥有此类关系数据以允许在两个方向上进行高效查找是很常见的。事实上我单独写了一个answer about dealing with many-to-many relations .

关于json - Firebase 数据库 : how to compare two values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49257088/

相关文章:

ios - 如何处理 NSData contentsOfURL EXC_BREAKPOINT 错误

arrays - Swift 根据总值(value)将数组分割成 block

使用门户转移 Firebase 应用所有权

Android Firebase orderByChild 查询

javascript - VueJs + Firebase - 如何读取简单数据

javascript - 将 JSON ID 键插入 ng-click 指令,然后将其传递给另一个 Controller

php - 出于调试目的远程激活时查看 php 的打印和回显命令

java - 如何使用 Springboot 在 REST 请求 URL 中将 json 对象作为参数传递

javascript - $().click需要按两次。 jQuery JSP

ios - 使用 XCTest 测试其中包含 `try-catch` 的方法