我正试图吸引住在波士顿的用户。我还将在其他城市使用此方法。因此,如果它包含“ bos”或“ bo”,我还是想获取该值。在这种情况下,我不能使用equalTo,因为数据库包含了这些单词,例如“ bostonmelie”,“ bostonspek”之类的不同类型。

我试图使用这样的代码,但是没有用:

var myref= firebase.database().ref();

myref.child('Users').orderByChild('Mothclass').on("value", function(snapshot) {
    //console.log(snapshot.val());
    snapshot.forEach(function(data) {
        //console.log(data.key);

        var n = data.key.includes("bos");
        console.log(n);


    });
});


控制台日志

00jszBe7JKba7DHwZKbK1G9ID7D3 checkfraud.js:105:9
1Fnyqg0T7ldDEPGppu9zOIa66ZE2 checkfraud.js:105:9
2LbwNtF1vWW0AWiKRum45xD04812 checkfraud.js:105:9
2kB7IwMAlzWK6l5T9hWXHUoCiL42 checkfraud.js:105:9
3ASeCkjaxrQrPtelENfkm1XvZfJ3 checkfraud.js:105:9
3JmFZ9fztRbnFhTLIbscp97IXjB3 checkfraud.js:105:9
3i588ADWdsU4PX86wyNnk961GBC2 checkfraud.js:105:9
3p6tvDw3SfdOp2KptgzK0Padn143 checkfraud.js:105:9
3yAWS85t4xc8awxiZhE20qFkUGd2 checkfraud.js:105:9

最佳答案

要查询数据库中以bos开头的密钥:

myref.child('Users').orderByKey().startAt('bos').endAt('bos\uf8ff').on("value", function(snapshot) {
  ...


\uf8ff只是最后一个已知的unicode字符,因此您要选择以bos开头并在bot之前结束的范围内的所有键。

您会注意到,我删除了orderByChild()调用,因为Firebase查询只能包含一个orderBy...。这种方法在服务器上执行过滤,但这意味着您可能必须对客户端上匹配的节点重新排序。

10-08 02:47