我是Firebase的新手。我在我的一个小项目中使用它。当用户注册并在其下添加其信息时,我在db上创建一个用户节点,其中uid是对象的id。它看起来类似于以下内容。
users
$uid
email = "xyz@xyz.com"
当我尝试在该节点上运行事务块来添加/更新某些东西时,Xcode打印出以下结果。由于这不能转换为字典代码失败。当我尝试从firebase导出我的数据时,没有空值。当使用数字ID时,我看到类似的问题,而这里并非如此。我无法弄清楚出了什么问题。 任何帮助表示赞赏...
Optional(<null>)
Optional({
email = "xyz@xyz.com";
})
答案 0 :(得分:0)
如果您想将数据附加到此节点: -
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"])