在Firebase函数中过滤数据

时间:2017-07-27 19:49:15

标签: firebase firebase-realtime-database

如何找到myPhone值为= 123

的users.key值

enter image description here

我的尝试:

let usersRef = admin.database().ref("users");
usersRef
            .orderByChild("myPhone")
            .equalTo("123")
            .on('value', function(snapshot) {
                console.log("Snapshot "+ snapshot.val() );

        });

2 个答案:

答案 0 :(得分:1)

您正在过滤字符串,但正在存储一个数字。为了使它工作:

let usersRef = admin.database().ref("users");
usersRef.orderByChild("myPhone")
        .equalTo(123)
        .on('value', function(snapshot) {
            snapshot.forEach((userSnapshot) {
                console.log("User "+userSnapshot.key+": "+ userSnapshot.val() );
            });
    });

虽然我可能建议将电话号码存储为字符串。

答案 1 :(得分:0)

另一种选择是将电话号码存储为像Frank这样提到的字符串

{
  "users": {
    "yourUID": {
      "myPhone": "123"
    }
  }
}

注意到我使用的是"123"而不是123。如果您使用此方法,则不必使用.equalTo("123")并改为使用.equalTo(123)

如果要使用此方法,请在firebase数据库中保存数据时使用字符串。