我正在将键值对上传到firebase,我收到错误
(child :)必须是非空字符串且不包含'。' '#''$''['或'] ......
这个错误意味着孩子“key”包含$#。等
或者如果孩子的“价值”包含$#。等?
因为我想找到错误的位置?
这是我的下面的字典,虽然我看不到键值对的关键部分中的任何值。
这是字典:
["Subtitle": Sad DVD, "Email": go@mail.com, "Gender": 27, "Username": Sad DVD, "Display Name": Sad DVD, "Account Type": Business, "Password": Sdfsdfsdf, "profileImageUrl": https://firebasestorage.googleapis.com/v0/b/grapevine-2019-1d4a5.appspot.com/o/profile%20images%2F438670B1-E723-484C-8510-555B1CA0B9C5png?alt=media&token=b65796ea-6380-497e-a98b-d1c75c4c454a]
答案 0 :(得分:0)
您可以将任何ascii文本存储为值,因此问题在于其中一个键或者值为空。
我将您的数据复制并粘贴到项目中,并将所有值括在引号
中let test = ["Subtitle": "Sad DVD",
"Email": "go@mail.com",
"Gender": "27",
"Username": "Sad DVD",
"Display Name": "Sad DVD",
"Account Type": "Business",
"Password": "Sdfsdfsdf",
"profileImageUrl": "https://firebasestorage.googleapis.com/v0/b/grapevine-2019-1d4a5.appspot.com/o/profile%20images%2F438670B1-E723-484C-8510-555B1CA0B9C5png?alt=media&token=b65796ea-6380-497e-a98b-d1c75c4c454a"
]
然后,为了测试数据,我将其写入Firebase,如下所示:
let testRef = self.ref.child("test").childByAutoId()
testRef.setValue(test)
正确编写了没有错误的数据。
这意味着您的问题中包含的字符串不是写入Firebase的实际字符串。
我建议添加一个
print(test)
在分配给测试变量后立即检查,以检查不正确或空值的密钥。
哦 - 问题也可能是您尝试写入的父节点。在我的代码中,我使用childByAutoId创建了父键 - 您的问题中没有包含您的代码,但您可能也想检查它。