[英]Firebase returning null as first value
我对 Firebase 有点陌生。 我在我的一个小项目中使用它。 当用户注册并在其下添加其信息时,我在 db 上创建一个用户节点,其中 uid 是 object 的 id。 它看起来类似于以下内容。
users
$uid
email = "xyz@xyz.com"
当我尝试在该节点上运行事务块以添加/更新一些东西时,Xcode 打印出以下结果。 由于这不能转换为字典代码失败。 当我尝试从 firebase 导出我的数据时,没有 null 值。 当使用数字 ID 时,我看到了与此类似的问题,但这里不是这种情况。 我只是不知道出了什么问题。 任何帮助表示赞赏...
Optional(<null>)
Optional({
email = "xyz@xyz.com";
})
如果要将数据附加到此节点,则:
let dbRef = FIRDatabase.database().reference().child("users").child(FIRAuth.auth()!.currentUser!.uid)
您可以通过将您的snapshot.value
检索为NSMutableDictionary
。
dbRef.child("email").observeSingleEventOfType(.Value, withBlock: {(list) in if let listDict = list.value as? NSMutableDictionary{ listDict.setObject(newValue, forKey: newKey) dbRef.setValue(listDict) }
如果您想更新数据,则可以:-
运行一个transactionBlock
:-
dbRef.child("email").runTransactionBlock({ (data: FIRMutableData) -> FIRTransactionResult in // Set value and report transaction success data.value = "newEmail@gm.com" return FIRTransactionResult.successWithValue(data) }) { (error, committed, snapshot) in if let error = error { print(error.localizedDescription) } }
更新值:-
dbRef.updateChildValues(["email" : "newEmail@gm.com"])
这是我为解决问题所做的:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.