【发布时间】:2019-06-07 12:41:44
【问题描述】:
我正在向不同的裁判发送数据。当我第一次发布以下代码时,一切正常。然后我再次使用相同的 postId 重新发布代码,它再次正常工作。
let root: DatabaseReference!
let uid = gHcqsRzK0xZJ3Zp11xAikDTKIKw2 // Auth.auth().currentUser?.uid
root = Database.database().reference()
let postId = "123"
let postsRef = "posts/\(uid)/\(postId)"
let usesrRef = "users/\(uid)/\(postId)"
let dict = [String: Any]()
dict.updateValue(someOtherDict, forKey: postsRef)
dict.updateValue(someOtherDict, forKey: usersRef)
root.updateChildValues(dict, withCompletionBlock: { [weak self] (error, ref) in
但是,当我尝试相同的确切代码并将一个额外的孩子附加到扇出参考时,第一次一切正常,第二次尝试再次重新发布时,我不断收到错误
'InvalidPathValidation', reason: '(child:) 必须是非空字符串 并且不包含'.' '#' '$' '[' 或 ']''
let postId = "123"
let additionalUid = "456"
let postsRef = "posts/\(uid)/\(postId)/\(additionalUid)"
let usesrRef = "users/\(uid)/\(postId)/\(additionalUid)"
我已经检查了几个小时(打印语句和调试器),并且 uid、postId 和 additionalUid 都包含任何无效字符。
为什么这个问题只会在扇出并附加一个额外的孩子到 ref 时出现?
【问题讨论】:
标签: ios swift firebase firebase-realtime-database