我正在尝试使用以下代码搜索属性:
ref.orderByChild("aFieldNameOnTheFirebaseCollection").equalTo(mySearchArgument).limitToFirst(1).on("child_added", function(snapshot) {
console.log("Yes the object with the key exists !");
var thisVerificationVarisSetToTrueIndicatingThatTheObjectExists = true ;
});
如果在集合中找到一个或多个对象,则此工作正常。但是,我需要知道是否存在任何对象。我可以在验证之前将验证var设置为false,但验证过程是异步的,我需要等到它完成。 Shoul我使用了承诺吗?
答案 0 :(得分:2)
如果(且仅当)添加了子项,则会触发child_added
事件。所以你不能用它来检测匹配的孩子是否存在。
为此使用value
事件:
var query = ref.orderByChild("aFieldNameOnTheFirebaseCollection").equalTo(mySearchArgument).limitToFirst(1);
query.on("value", function(snapshot) {
if (snapshot.hasChildren()) {
console.log("Yes the object with the key exists !");
var thisVerificationVarisSetToTrueIndicatingThatTheObjectExists = true ;
}
})