如何在Firebase中更新/添加项目到JSON数组?

时间:2017-01-22 22:41:44

标签: ios swift firebase firebase-realtime-database

我有以下Firebase数据结构:

"Group" : {
   "34923493" : {
   "Name" : "Group 1"
   "Users" : {
       joeshmoe : true
       janedoe : true
     }
  etc..... 
  }
}

我想将以下内容添加到“用户”部分:

 johndoe : true

当用户加入群组时。我有以下代码

self.ref.child("Group").child(groupID!).child("Users").setValue([user?.username : true])

但是我收到以下错误:

"Contextual type'Any' cannot be used with dictionary literal"

我不确定我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的代码有两个问题。

  1. 您获得的错误很可能是由成员变量username属于Any类型引起的。所以,只需将其转发到String

    [user?.username as! String: true]
    
  2. 这一行

    self.ref.child("Group").child(groupID!).child("Users").setValue([user?.username : true])
    

    将从字典中删除所有其他用户。您可以将[user?.username: true]分配给该子项,删除已存在的字典值。 直接更新字典键,如下所示:

    self.ref.child("Group").child(groupID!).child("Users").child(user?.username as! String).setValue(true)