在Firebase数据库中,我只尝试更新一列。 Firebase数据库'用户' JSON:
"users" : {
"5yty2c8TyChQu3fMJ1O3d44wuq2" : {
"Email" : "myEmail@yahoo.com",
"FirstName" : "John",
"LastName" : "Smith",
"MobileNumber" : "",
"NickName" : "",
"profile_picture" : ""
}
我想更新一个列 - 使用此代码的MobileNumber:
updateMobileNumber(){
var updateData = {
MobileNumber: this.state.mobileNumber
};
var updates = {};
updates['/users/' + userId ] = updateData;
database.ref('users/' + userId).update(updates);
alert('Account Updated');
}
上面的代码不是更新MobileNumber列,而是删除所有其他列并添加Email列。 我究竟做错了什么 ?我想更新电子邮件列而不涉及其他列。 感谢任何帮助。
答案 0 :(得分:5)
使用时
updates['/users/' + userId ] = updateData;
您实际上是将users / userId的值设置为updateData,这只是1个字段。您要使用的是方法更新,它允许您有选择地更新每个字段。像这样:
var adaNameRef = firebase.database().ref('users/ada/name');
// Modify the 'first' and 'last' properties, but leave other data at
// adaNameRef unchanged.
adaNameRef.update({ first: 'Ada', last: 'Lovelace' });
以下是该方法的文档: https://firebase.google.com/docs/reference/js/firebase.database.Reference#update
你的代码也可以这样:
database.ref('users/' + userId).update({MobileNumber: newNumber});