在 Firebase 数据库中,我尝试仅更新一列。 Firebase 数据库“用户”JSON:
"users" : {
"5yty2c8TyChQu3fMJ1O3d44wuq2" : {
"Email" : "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2c415569414d45406c554d444343024f4341" rel="noreferrer noopener nofollow">[email protected]</a>",
"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');
}
上面的代码不是更新“手机号码”列,而是删除所有其他列并添加“电子邮件”列。 我究竟做错了什么 ?我想更新电子邮件列而不触及其他列。 感谢任何帮助。
最佳答案
当您使用时
updates['/users/' + userId ] = updateData;
您实际上是将 users/userId 的值设置到 updateData 中,这只有 1 个字段。您想要使用的是 update 方法,它允许您有选择地更新每个字段。像这样:
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});
关于javascript - React-Native Firebase 更新专栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45579313/