Javascript 检查子项的数量是否大于1
在Firebase的云函数中,如何检查节点的子节点数是否大于1?在我的例子中,我想看看天数是否大于1 例如:Javascript 检查子项的数量是否大于1,javascript,node.js,firebase,firebase-realtime-database,google-cloud-functions,Javascript,Node.js,Firebase,Firebase Realtime Database,Google Cloud Functions,在Firebase的云函数中,如何检查节点的子节点数是否大于1?在我的例子中,我想看看天数是否大于1 例如: if(children of 'messages' node > 1) // do something 三个选项,取决于您的用例: 一个。检索messages对象并计算密钥,例如 var x = {"1":1, "A":2}; Object.keys(x).length; //outputs 2 两个。更有利的是,将count节点保留为消息的子节点,并在添加和删除子节点时进行监
if(children of 'messages' node > 1)
// do something
三个选项,取决于您的用例: 一个。检索messages对象并计算密钥,例如
var x = {"1":1, "A":2};
Object.keys(x).length; //outputs 2
两个。更有利的是,将count节点保留为消息的子节点,并在添加和删除子节点时进行监视。Firebase提供了一个关于如何做到这一点的示例:
三个。您还可以将numChildren用于快照的顶层
例如:
// If the number of likes gets deleted, recount the number of likes
exports.countDays = functions.database.ref('/messages').onWrite(event => {
const theRef = event.data.ref;
const collectionRef = theRef.parent.child('days');
collectionRef.once('value').then(messagesData => {
if(messagesData.numChildren()) > 1) {
// do something
}
})
});
如果您计划只使用一周中的7天,您可以使用一周中的几天循环一个数组,然后执行以下操作:
function amountOfChildren(ref, arr) {
let children = 0;
for (const item in arr) {
if ref.hasChild(item) {children++}
}
return children;
}
const rootRef = firebase.database().ref();
const daysRef = rootRef.child('days');
const weekDays = ["monday","tuesday","wednesday","thursday","friday","saturday","sunday"];
amountOfChildren(daysRef, weekDays); // returns a number from 0 to 7
我用我的数据结构更新了我的问题。在我的情况下,我如何计算天数?例如,ifdays.children>1//做一些伟大的事情。在我的案例中,我将如何准确地使用numChildren?对不起,我更新了我的问题,我不够清楚。当在messages节点上进行onWrite时。我想检查天数是否大于1。