2017-08-08 81 views
1

在Firebase數據庫中,我試圖只更新一列。 火力地堡數據庫「用戶」 JSON:React-Native Firebase更新列

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

我想只更新一列 - 移動電話號碼與此代碼:

updateMobileNumber(){ 

    var updateData = { 
        MobileNumber: this.state.mobileNumber 
         }; 

    var updates = {}; 
    updates['/users/' + userId ] = updateData; 

    database.ref('users/' + userId).update(updates); 

    alert('Account Updated'); 

    } 

上面的代碼,而不是更新移動電話號碼列,它是刪除所有其他列和添加電子郵件列。 我在做什麼錯?我想更新電子郵件列而不觸及其他列。 感謝任何幫助。

回答

3

當您使用

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

你實際上設置用戶/用戶id進入了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});