ios - 如何将 Firebase 子条目关联到主条目? (评论中有解释)

标签 ios swift firebase firebase-realtime-database

JSON:

{
  "coffee-shops" : {
    "-KJ4I4D-Jrqrzc9wP42C" : {
      "coffeeShopName" : "Starbucks",
      "coffeeShopRating" : 3.5,
    "-KJ4VVB51wx9NpEKtjxQ" : {
      "coffeeShopName" : "Starbucks",
      "coffeeShopRating" : 1,
      "coffeeShopReview" : "R",
      "coffeeShopReviewerName" : "Charles"
    },
    "-KJEJ6MpQwOHcay_9k6v" : {
      "coffeeShopName" : "Starbucks",
      "coffeeShopRating" : 4,
      "coffeeShopReview" : "B",
      "coffeeShopReviewerName" : "Charles"
    }
  }
  },
  "users" : {
    "02a54e06-9635-4e22-9bb7-c0ddcd9c6f4f" : {
      "email" : "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="6f0c070e1d030a1c2f08020e0603410c0002" rel="noreferrer noopener nofollow">[email protected]</a>",
      "provider" : "password",
      "username" : "thecoffeeguy"
    },
    "03fe2c17-3c66-442c-a63d-4a1e02fd660c" : {
      "email" : "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="8afeeff9fecaede7ebe3e6a4e9e5e7" rel="noreferrer noopener nofollow">[email protected]</a>",
      "provider" : "password",
      "username" : "Charles"
    },
    "16a7279f-5478-4f3f-b5f8-2f261d166d92" : {
      "email" : "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f98d9c8a8d9c8bb99e94989095d79a9694" rel="noreferrer noopener nofollow">[email protected]</a>",
      "provider" : "password",
      "username" : "haha"
    },
    "23275f65-8e16-4ede-9236-21485b7493b9" : {
      "email" : "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="96f4f9f9d6f1fbf7fffab8f5f9fb" rel="noreferrer noopener nofollow">[email protected]</a>",
      "provider" : "password",
      "username" : "boo"
    },
    "a5ed6962-76bc-476a-b432-6787e45badfc" : {
      "email" : "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="b8d5ddcbdaddd3d5ddd3f8dfd5d9d1d496dbd7d5" rel="noreferrer noopener nofollow">[email protected]</a>",
      "provider" : "password",
      "username" : "mesbekmek"
    }
  }
}

一些背景:我正在制作一个咖啡应用程序,我需要针对用户所在的咖啡店进行评论。现在,所有曾经发表的评论都会显示在我的桌面 View 上。

这并不是一个“如何编码”的问题,而是我想知道如何解决这个问题以及如何解决它。

这是我认为我应该做的:

  1. 获取特定咖啡店的uuid

  2. 迭代评论,因为它们是我的咖啡店模型中的子条目

  3. 通过迭代评论获取数据,然后查看所选单元格的 uuid(?)是否与评论 uuid 匹配

这对我来说听起来不太对,所以任何帮助都会很棒。

最佳答案

您可以以不同的方式组织数据库。

coffee-shops:
|--coffeeId1
|--coffeeId2
|--coffeeId3

reviews:
|--coffeeId1
|----reviewId1
|----reviewId2
|--coffeeId2
|----reviewIdX
|----reviewIdXx

当您插入评论时,您可以使用咖啡店的同一把 key 。
这样,同一家咖啡店的所有评论都在同一个引用下。

你可以使用这样的方法来实现它:

ref(reviews).child(coffeeshop.getKey()).push();

关于ios - 如何将 Firebase 子条目关联到主条目? (评论中有解释),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37582181/

相关文章:

ios - 从给定数字生成随机数

ios - 在没有 AutoLayout 效果的情况下缩放自定义 UIView 大小

ios - 横向模式下的 Swift Collection View

firebase - Flutter Firebase 身份验证 : How to display the user email and name in the Flutter Drawer

javascript - 是否可以从firebase云函数node.js更新firestore中的map类型字段?

ios - 无法使用 uiswipegesturerecognizer 默认功能多次弹出到 viewcontroller

iphone - 为 UITableViewCell 的飞行设置动画

ios - UIButton 系统与自定义在颜色、图像、状态等方面的对比?

ios - 在 Swift 中,在 5 秒内(非阻塞)调用一个方法最简单的方法是什么?

Swift:如何在创建新用户之前检查用户的电话号码是否已经在 Firebase 数据库中