【问题标题】:React-Native Firebase update columnReact-Native Firebase 更新专栏
【发布时间】:2018-01-16 16:08:24
【问题描述】:

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

【问题讨论】:

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


    【解决方案1】:

    当你使用

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多