gpt4 book ai didi

javascript - 如何将新数据添加到 Firebase 数据库中的现有数据?

转载 作者:行者123 更新时间:2023-11-30 15:21:33 31 4
gpt4 key购买 nike

我有一个包含三张幻灯片的进度条,用于注册用户。当第一个屏幕出现时,用户将输入主要信息并单击下一步,另一个表单将滑动到第三个。我将一个函数附加到第一个下一个按钮以在 firebase 数据库中创建新用户,并将一个函数附加到每个下一个按钮以将用户的输入保存到创建的 uid 下的 firebase DB 中。我是按照 firebase 文档的说明让它工作的。但是,请注意,在第一次按预期保存数据之后,每个下一个按钮都会用新输入的输入替换 uid 下的所有内容。我需要它将新信息添加到数据库中的现有信息而不是替换它。我使用此引用 https://firebase.google.com/docs/database/admin/save-data我知道推送、setValue 和更新之间的区别,我正在使用更新,但它会替换之前输入的所有内容。我做错了什么,如何才能将新数据添加到现有条目中?这是我的功能

这个函数附加了第一个 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 路径下的所有内容数据。您需要仅指定您实际想要更新信息的那些 child 的路径。示例如下:

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

关于javascript - 如何将新数据添加到 Firebase 数据库中的现有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43658350/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com