2017-08-08 39 views
1

Firebaseデータベースで、1つのカラムのみを更新しようとしています。 Firebaseデータベース「ユーザー」JSON:React-Native Firebaseアップデートカラム

"users" : { 
     "5yty2c8TyChQu3fMJ1O3d44wuq2" : { 
     "Email" : "[email protected]", 
     "FirstName" : "John", 
     "LastName" : "Smith", 
     "MobileNumber" : "", 
     "NickName" : "", 
     "profile_picture" : "" 
    } 

私はちょうど1列に更新したい - このコードで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列を更新したい 助けてください。

答えて

3

あなたは

updates['/users/' + userId ] = updateData; 

を使用するときは、実際には1分野であるにupdateData、ユーザーに/ userIdをの値を設定しています。使用したいのは、フィールドを選択的に更新できるメソッド更新です。このように:

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}); 
関連する問題