繁体   English   中英

在Firebase中添加新孩子

[英]Add a new child in Firebase

因此,我的情况与在线发现的问题有所不同。

我希望在按下按钮时使用新的子节点Foot19更新节点Societies 上下文是学校群组的列表,当用户按下按钮以“跟随”学校群组时,该群组的ID将添加到其个人数据部分。

因此,当他们单击addFootballSoc按钮时, Foot19将作为新的子节点添加到其特定的Societies节点。

每个sUsers节点开始处的sUsers等同于其authentication uid ,这就是为什么我使用firebase.auth()调用它的原因

我想用一个新孩子更新的数据库区域的屏幕截图

document.getElementById('addFootballSoc').onclick = function() {addFootball()};

function addFootball(){
var runUid = firebase.auth().currentUser.uid;
var searchRef = firebase.database().ref('sUsers');
var newSearchRef = searchRef.child(runUid); 
var mm = newSearchRef.child('Societies')
mm.child.set('Foot19'){}
}

我希望它为加入的每个组添加一个新的子级,这样他们就不能覆盖它们,例如,如果我要添加“艺术”组按钮

编辑:

更改了功能,以便onclick可以正常工作,并且现在可以将其写入我想要的位置,但是,如果我要在Foot19旁边添加另一个子节点,它将删除Foot19并将其替换,我会使用push但我不想使用添加到我的节点的唯一密钥。 如何更改此设置以确保可以添加更多节点?

document.getElementById('addFootballSoc').onclick = function() {addFootball()};

function addFootball(){
var runUid = firebase.auth().currentUser.uid;
var searchRef = firebase.database().ref('sUsers');
var newSearchRef = searchRef.child(runUid); 
var mm = newSearchRef.child('Societies')
mm.child.set('Foot19'){}
}

您可能会在页面加载时立即调用函数addFootball() ,然后才能从Firebase退回/解析uid或看起来像在处理.set错误的数据类型。 尝试这个。

document.getElementById('addFootballSoc').addEventListener("click", function(evt) {
var runUid = firebase.auth().currentUser.uid;
if(runUid){
var searchRef = firebase.database().ref('sUsers');
var newSearchRef = searchRef.child(runUid); 
var mm = newSearchRef.child('Societies')
mm.child.set({'Foot19':true});
} else {
  console.log("no uid");
}

});

解决了。

屏幕抓取

屏幕抓图显示了条目放置在用户ùid节点内的子节点societies中。 我更改了第6行的值以测试新的节点不会被覆盖,因此在整个ALT5ASN11进行了额外的更改。

function addFootball(){
var runUid = firebase.auth().currentUser.uid;
var searchRef = firebase.database().ref('sUsers');
var newSearchRef = searchRef.child(runUid); 
newSearchRef.child('Societies').update({
    Foot19 : true
})
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM