React-Native Firebase更新列

时间:2017-08-08 23:08:56

标签: javascript firebase react-native firebase-realtime-database

在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列。 我究竟做错了什么 ?我想更新电子邮件列而不涉及其他列。 感谢任何帮助。

1 个答案:

答案 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});