Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检查Firebase中是否存在具有多个字段的节点(子节点)?_Javascript_Firebase - Fatal编程技术网

Javascript 如何检查Firebase中是否存在具有多个字段的节点(子节点)?

Javascript 如何检查Firebase中是否存在具有多个字段的节点(子节点)?,javascript,firebase,Javascript,Firebase,显示一种检查具有给定id的节点是否存在的方法。 但是,我使用带有随机ID的push方法插入一个节点。 假设节点具有字段A、B和C。 插入a=a1、B=b1、C=c1的节点之前。我想检查具有此组合的节点是否存在。您可以随时进行读取并检查属性: function checkData(data) { return data.A === 'a1' && data.B === 'b1' && data.C === 'c1'; } var ref = new Fireba

显示一种检查具有给定id的节点是否存在的方法。 但是,我使用带有随机ID的push方法插入一个节点。 假设节点具有字段A、B和C。
插入a=a1、B=b1、C=c1的节点之前。我想检查具有此组合的节点是否存在。

您可以随时进行读取并检查属性:

function checkData(data) {
  return data.A === 'a1' && data.B === 'b1' && data.C === 'c1';
}
var ref = new Firebase('<my-firebase-app>/item');
ref.once('value', function(snap) {
  var hasCombination = checkData(snap.val());
});

此代码生成一组验证规则,确保仅具有
a
B
C
属性的对象保存到
/data
路径。

如David的回答中所述,我们可以阅读和检查。但是他没有提到我们什么时候要检查多个子节点。方法在这种情况下会有所帮助。因此,我们可以使用forEach将David的解决方案应用于每个chlid。

感谢您的回复。您提供的函数将检查所有节点?我的意思是,项可以有10个具有随机ID的子项,并且这10个子项中的每个子项都有字段A、B和C。在插入第11个子项(具有A=a1、B=b1、C=c1)之前,我需要确保前10个子项中没有此项。我是否需要在所有10个循环上循环?或者你提供的功能可以自己完成?如果是,请说明它是如何做到这一点的?
type Data {
  a: String;
  b: String;
  c: String;
}

path /data is Data;