所以我的情况与网上发现的问题有点不同。
我希望在按下按钮时使用新的子节点Societies
更新节点Foot19
。上下文是它是一个学校组列表,当用户按下按钮以跟随'他们,该组的ID被添加到他们的个人数据部分。
因此,当他们点击addFootballSoc
按钮Foot19
作为新的子节点添加到其特定的Societies
节点时。
每个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'){}
}
我希望它为他们加入的每个群组添加一个新的孩子,这样他们就无法覆盖,例如,如果我要添加一个' Arts'组按钮
编辑:
更改了函数,因此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'){}
}
答案 0 :(得分:0)
您可能会在页面加载时立即调用此函数addFootball()
,然后再从Firebase中恢复/解析,或者看起来正在处理.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");
}
});
答案 1 :(得分:0)
解决了它。
屏幕抓取显示放置在用户societies
节点内的子节点ùid
中的条目。额外的ALT5
& ASN11
是我在第6行更改值以测试新节点不会被覆盖的地方。
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
})
}