【问题标题】:How to make firebase list like this on swift如何在swift上制作这样的firebase列表
【发布时间】:2019-03-11 15:29:19
【问题描述】:

这就是我想要的样子

首先我是这样做的:

self.ref.child("User/CareGiver/\(CaregiverUID)/Followed").setValue([value2])

结果如图所示。但是当我添加第二个数据时。它取代了旧的。

所以我改成这个

self.ref.child("User/CareGiver/\(CaregiverUID)").updateChildValues([
            "Followed" : ["\(value2)"]])

它仍然会替换位置 [0] 处的数据,并且永远不会到达位置 1 我能怎么做 数组 [UID1,UID2,UID3] 到 firebase(不是同时添加数组数据,所以会是这样)

-[0] UID1
-[1] UID2
-[2] UID3

不更换另一个?

ps.抱歉英文不好

JSON 应该是这样的

{
  "Name_Care" : "asdsท",
  "Tel_Care" : "kknlk",
  "Role" : "Care Giver",
  "Followed" : [
    "UID_A",
    "UID_B",
    "UID_C",
    "UID_E"
  ]
}

在firebase中就像在图片中

【问题讨论】:

  • 真的不想为此使用数组。数组在 NoSQL 数据库中不能很好地工作,因为它们本质上是一个对象 - 更改它们需要删除数组并重新编写它 - 通常有更好的选择。请参阅Arrays are evilArrays 了解更多信息。

标签: ios swift firebase firebase-realtime-database


【解决方案1】:

因此,如果您想将新值添加到“已关注”字典中,则应为新用户使用带有 uniq id 的“setValue”函数。 例子: self.ref.child("User/CareGiver/\(CaregiverUID)/Followed").setValue("3":"user_name")
在这种情况下,您为键 3 添加记录 user_name

我认为这种方式可以帮助你。

【讨论】:

  • 我已经这样做了。但是如果我添加新的 UID 怎么办。我必须自己更改为 [4]。我希望它作为数组对象,但 firebase 不支持数组
  • 所以,如果你想用键 4 修改记录,你应该使用 self.ref.child("User/CareGiver/\(CaregiverUID)/Followed"). updateChildValues(["4":"<new_user_name>"]) 在我看来,你应该添加新的关注用户:self.ref.child("User/CareGiver/\(CaregiverUID)/Followed"). updateChildValues(["userID":"<user_name>"]) 另外,当你从db,您可以从中获取所有数据,就像使用简单数组一样
  • 我希望它看起来像上面的 Json 代码。其他然后当我尝试解码时,它一直说“预计解码 array 但找到了字典”。但是当我更改结构字典时。 “应解码字典,但找到了一个字符串/数据。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-10
  • 2023-03-07
  • 1970-01-01
  • 2023-03-30
相关资源
最近更新 更多