ios - 当需要根据特定键过滤用户帖子时如何构建(保存/检索)?

标签 ios swift firebase firebase-realtime-database nosql

我正在构建一个应用程序,用户可以在其中查看特定于某个键的帖子。比如,如果他们想看关于餐馆的帖子,他们就会得到关于餐馆的帖子。我该如何构建它?

现在,每次用户发布内容时,都会有一个通用的 posts 节点,每个帖子都保存在它下面,供所有用户使用。

那么,我如何告诉 Firebase,“只从该节点下获取这些特定的帖子?”一个问题是:我不希望帖子必须保存它们的内容,即帖子中没有像 restaurant : joe's pizza 这样的键值对。

相反,我正在考虑拥有主题节点(主题),然后在其下方保存对帖子的引用。所以,比如说,节点 Pizza 下面有 3 个子节点,所有子节点都有与帖子的键相匹配的键(同样,帖子保存在一个单独的节点中,它们存储数据、文本和图像.).比如说,节点 Ice Cream 有 4 个 child ——引用了 4 个关于冰淇淋的帖子。因此,如果我是一个用户,并且我想查看有关冰淇淋的帖子,我需要 Firebase 询问,“嘿,找到那个 Ice Cream 节点,然后检索下面的所有引用,然后然后根据它们的键获取每个引用文献的帖子。”

这个问题有意义吗?

如果有任何帮助,我将不胜感激。 (我是一名新编码员,当其他人回答我的问题时,我学到的最多)。谢谢!

最佳答案

要以最佳方式使用 Firebase,您肯定需要明智地思考如何构建数据。可以找到许多最佳实践 in the structuring data guide .关键要点:

  1. 尝试按照人们查看数据的方式来构建您的数据。
  2. 如果您确实需要切片和切 block ,您一次只能对一个属性执行此操作。对于其他所有内容,您都需要进行非规范化。
  3. 从 Firebase 获取多个节点并不那么昂贵——因为有一个开放的双向套接字连接,您可以快速进行多次获取。

最终,您需要根据应用程序的特定需求仔细规划数据结构。

关于ios - 当需要根据特定键过滤用户帖子时如何构建(保存/检索)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39156157/

相关文章:

iphone - 如何获取UITableview可见路径和更多行

ios - BLE Swift 写入特性

ios - Object Swift 中数组中的对象

ios - cocoapod 错误 tar : Unrecognized archive format

firebase - firestore 事务抛出更新规则错误,该规则只允许有一个特定字段

ios - 如果应用程序在 iOS 9 上处于后台,则不会出现推送通知

ios - 如何从视频中获取单个图像?

ios - [[NSNotificationCenter defaultCenter] addObserver:选择器:@selector(mymethod)名称:对象:];在iOS 9中不再被调用

swift - 在 Swift 4 中添加到字符串

swift - Firebase 2.0 - 从 FIRDataSnapshot 读取数据不起作用