【发布时间】:2020-02-04 15:00:17
【问题描述】:
主题标题可能令人困惑。我有studentschild 下的用户。还有mathlabchild。我想要做的是让每个学生的 id 在matlab 孩子下,并在students 孩子下添加一些特定的孩子。
所以如果学生在 mathlab 中创建 "class:"math" , ps:"A" 在 students/id/ 下。
这是火力基地结构。
{
"mathlab" : {
"8SFX6ozygaeYm5s80XwEH15eOvR2" : {
"opos" : "3395762152383824847.5408566913692403"
},
"FouXbMWlPpQfkAHSJ98cRyMGyMq2" : {
"opos" : "2408503147879014222.4051320981527633"
},
"pAB5SPbZ42RkpeyB1vSe7vMgh0V2" : {
"opos" : "4282105147184071736.7786257557636794"
}
},
"students" : {
"3fw0j4tY1jMuugWaq9N1DZSPNBh2" : {
"opos" : "4316375953600111482.6297165447082696"
},
"8SFX6ozygaeYm5s80XwEH15eOvR2" : {
"opos" : "3395762152383824847.5408566913692403"
},
"FouXbMWlPpQfkAHSJ98cRyMGyMq2" : {
"opos" : "2408503147879014222.4051320981527633"
},
"UCQanT45dlWDb2ntFITa33pC4h22" : {
"opos" : "5279089148868706990.4495067048309678"
},
"aVoyqW6IcsdJEylwT7uuIyYU87l1" : {
"opos" : "4668496806381405007.7330624192123722"
},
"pAB5SPbZ42RkpeyB1vSe7vMgh0V2" : {
"opos" : "4282105147184071736.7786257557636794"
},
"uDQ7ISmmG7RsbCizNXQIZvysEK22" : {
"opos" : "1342746957828245395.2663129729855386"
},
"xM9U9MjoZUVOcqOVG38SzLrzd1z1" : {
"opos" : "3998977600021296207.4092046127102224"
}
}
}
到目前为止我做了什么
我收集学生的每个 id 并推入一个数组。但是如何一次性创建孩子呢?
var mathkids = [];
var matstudens1;
myref.child('mathlab').on("value", function(snapshot) {
snapshot.forEach(function(data) {
//Get id's
mathkids.push(data.key);
});
console.log(mathkids);
});
}
这是必须的样子。
|students
|8SFX6ozygaeYm5s80XwEH15eOvR2
|class:"math"
|ps:"A"
|5pw4MkVxKob8nXiHojTl61tQQ822
|class:"math"
|ps:"A"
|FeP6H8H0PyVjMDcqwH3zbY0xAxg2
...
|mathlab
|8SFX6ozygaeYm5s80XwEH15eOvR2
|5pw4MkVxKob8nXiHojTl61tQQ822
...
更新
所以我得到了学生 id 并存储到“mathkids”数组。这是我推送数据时的操作。
secondref = firebaseRef = firebase.database().ref().child("students").child(matstudens1);
secondref.on('value' ,function(datasnapshot) {
secondref.child("class").set("math");
secondref.child("ps").set("A");
});
}
每次我必须单击按钮更改“matstudens1”值。我如何立即为所有“数学孩子”使用签名?
【问题讨论】:
-
But how do I create the childs in one time是什么意思? -
我得到一个数组并推送。然后我为每个用户一个一个地前进。示例:workfonk = firebaseRef = firebase.database().ref().child("studends").child (数学[0]);比 [1],[2].... 我需要一次性为所有用户做。
-
很难理解你想要完成什么。我认为这部分是因为您共享的数据结构没有涵盖您想要的输出。您可以编辑您的问题(下面有一个链接),以包含数据库中的实际 JSON(作为文本,不需要屏幕截图)?您可以通过单击Firebase Database console 上溢出菜单 (⠇) 中的“导出 JSON”链接来获取此信息。
-
谢谢。我编辑了我的帖子。其中一些学生在 mathlab 中,我想在学生孩子下为他们每个人添加一些额外的孩子。
-
我也不清楚您要达到的目标,但我会说您正在复制大部分数据。我认为您需要重新考虑您的数据库的结构,也许可以阅读数据库设计,否则您将向 Google 支付很多您不需要的钱。
标签: javascript firebase firebase-realtime-database