我有一个进度条,其中有三张用于注册用户的幻灯片。当第一个屏幕显示时,用户将输入主要信息并单击“下一步”,另一个表单将滑动到第三个。我将一个函数附加到第一个下一个按钮以在firebase数据库中创建新用户,并将函数附加到每个下一个按钮,以将用户的输入保存到创建的uid下的firebase DB中。我是按照firebase doc的说明开始工作的。但是,注意到第一个按钮之后的第一个按钮按预期保存数据,但它用新输入的内容替换了uid下的所有内容。我需要它将新信息添加到DB中的现有信息而不是替换它。 我用这个参考https://firebase.google.com/docs/database/admin/save-data 我知道push,setValue和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);
}
非常感谢任何帮助
答案 0 :(得分:2)
在您的情况下,行updates['/Businesses/' + uid] = postData;
调用firebase以使用新数据覆盖'/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);