仅通过覆盖一些数据Swift 3来设置Firebase数据库中的值

时间:2017-03-13 00:31:56

标签: ios swift firebase firebase-realtime-database

Image of Current Database

上图显示了我的数据库是如何设置的,其中文件夹名称是用户名并嵌套在其中,是一个名为“userName”的值,它再次包含它们的名称。

当用户登记我上传“小时”和“分钟”时,我还需要重新上传所有其他人,他们的文件是用户名,然后嵌套在那里“userName”。

为此,我使用

Column is not iterable
Traceback (most recent call last):
  File "/usr/hdp/current/spark2-client/python/pyspark/sql/column.py", line 240, in __iter__
    raise TypeError("Column is not iterable")
TypeError: Column is not iterable

一切正常,数据到达正确的位置,但是,所有数据都会被覆盖并删除其他用户已经存在的时间。有没有办法只覆盖每个人的用户名而不是其他人的时间?

1 个答案:

答案 0 :(得分:1)

请参阅Firebase documentation on updating specific fields中的示例:

let key = ref.child("posts").childByAutoId().key
let post = ["uid": userID,
            "author": username,
            "title": title,
            "body": body]
let childUpdates = ["/posts/\(key)": post,
                    "/user-posts/\(userID)/\(key)/": post]
ref.updateChildValues(childUpdates)

虽然在这种情况下,你似乎也可以这样做:

uploadArrayPath.child(userName).child("userName").setValue(userName)

顺便说一下:我不确定你为什么要这样复制用户的名字。重命名用户将会非常混淆,他们的名称既是值又是节点的密钥。