簡體   English   中英

如何將新數據添加到Firebase數據庫中的現有數據?

[英]How can I add new data to existing data in a firebase database?

我有一個帶有三個幻燈片的進度條,用於注冊用戶。 當第一個屏幕出現時,用戶將輸入主要信息,然后單擊“下一步”,另一個表格將滑動直到第三個屏幕。 我在第一個next按鈕上附加了一個函數,以便在firebase數據庫中創建新用戶,並且在每個next按鈕上附加了一個函數,以將用戶的輸入保存到創建的uid下的firebase DB中。 我要按照firebase doc的說明進行操作。 但是,請注意,第一個按鈕之后的每個下一個按鈕均按預期保存數據,但是它將uid下的所有內容替換為新輸入的輸入。 我需要它來將新信息添加到數據庫中的現有信息,而不是替換它。 我使用此參考https://firebase.google.com/docs/database/admin/save-data我知道push,setValue和update之間的區別,並且我使用的是update,但它取代了之前輸入的所有內容。 我在做什么錯,如何獲得將新數據添加到現有條目的信息? 這是我的職能

該函數附加了第一個Next按鈕(創建用戶並獲取uid)

           function registerBussiness() {
                  var database = firebase.database();
                  var fname = document.getElementById('fname').value;
                  var lname = document.getElementById('lname').value;
                  var businessname = document.getElementById('Busname').value; 
                  var email = document.getElementById('email').value;
                  var password = document.getElementById('password').value;
                  var website = document.getElementById('website').value;
                   //Get Elements

                    if (email.length < 4) {
                    alert('Please enter an email address.');
                    return;
                  }
                  if (password.length < 4) {
                    alert('Please enter a password.');
                    return;
                  }

                  firebase.auth().createUserWithEmailAndPassword(email, password) .then(function(user) {
                       var uid = firebase.auth().currentUser.uid;
                       var auth = firebase.auth();
                       var storageRef = firebase.storage().ref();

                       var postData = {
                         fname: fname,
                         lname: lname,
                         BusinessName: businessname,
                         email: email,
                         website: website,
                       };
                       var updates = {};

                      updates['/Businesses/' + uid] = postData;

                        return firebase.database().ref().update(updates); 
                    })

              } 

這是第二個功能,它將替換先前由第一個功能輸入的所有數據

      function addBussSumrytoDB() {


                   var BussSummry = document.getElementById('AboutUs').value;
                   var root = firebase.database().ref();
                   var uid = firebase.auth().currentUser.uid


                      var postData = {
                       BusinessSummary: BussSummry,
                       logoUrl: logoUrl.value,
                       BackgroundUrl: backgrdUrl.value,
                     };
                     var updates = {};
                    updates['/Businesses/' + uid] = postData;

                      return firebase.database().ref().update(updates); 
                }

任何幫助將不勝感激

在您的情況下,行updates['/Businesses/' + uid] = postData; 調用firebase來用新數據覆蓋'/Businesses/' + uid路徑下'/Businesses/' + uid所有內容。 您只需要指定路徑,這些路徑實際上就是您要在其上更新信息的子級。 下面的例子:

var updates = {};
updates['/Businesses/' + uid + '/' +'/BusinessSummary'] = BussSummry;
updates['/Businesses/' + uid + '/' +'/logoUrl'] = logoUrl.value;
updates['/Businesses/' + uid + '/' +'/BackgroundUrl'] = backgrdUrl.value;
firebase.database().ref().update(updates);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM