Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/189.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
Android Firebase-在列表上进行筛选_Android_Firebase_Filtering_Firebase Realtime Database - Fatal编程技术网

Android Firebase-在列表上进行筛选

Android Firebase-在列表上进行筛选,android,firebase,filtering,firebase-realtime-database,Android,Firebase,Filtering,Firebase Realtime Database,我正在制作一个android应用程序,我需要存储一些关于用户的数据,比如他们的firebase云消息令牌。我的数据可以是这样的,其中用户的id是他的电话号码: { "users" : { "+34.....56" : { "fcm_token" : "...", ... }, "+34.....45" : { "fcm_token" : "...",

我正在制作一个android应用程序,我需要存储一些关于用户的数据,比如他们的firebase云消息令牌。我的数据可以是这样的,其中用户的id是他的电话号码:

{
    "users" : {

        "+34.....56" : {
            "fcm_token" : "...",
            ...
        },

        "+34.....45" : {
            "fcm_token" : "...",
            ...
        },

        ...
    }
}
问题是,我希望每个用户都能看到他的哪些联系人正在使用该应用程序。所以我有一个电话号码列表(用户的联系人),我想用这个列表过滤数据库中的用户。我知道
equalTo()
方法只能对单个值进行过滤

我该怎么办?如果我用
equalTo()
为每个电话号码发出请求,这将是非常痛苦和昂贵的。如果我请求获取数据库的所有用户,然后在客户端进行过滤,那么成本也会非常高


在我的应用程序中,过滤电话号码列表是一件非常重要的事情。firebase是否适用于此,还是应该使用其他数据库?

如果您按用户的电话号码存储用户,则不需要
equalTo()
。除此之外,操作速度比您预期的要快得多。请参阅。@FrankvanPuffelen:但是如果不使用
equalTo()
,我怎么办?我需要将列表中的每个电话号码与firebase db上的电话号码进行比较。我不知道如何同时发送多个请求无法同时发送多个这样的请求,也不需要。看看你是怎么做到的?您只需在同一时间发出多个请求,然后等待每个请求返回请求的内容?如果您按用户的电话号码存储用户,则不需要
equalTo()
。除此之外,操作速度比您预期的要快得多。请参阅。@FrankvanPuffelen:但是如果不使用
equalTo()
,我怎么办?我需要将列表中的每个电话号码与firebase db上的电话号码进行比较。我不知道如何同时发送多个请求无法同时发送多个这样的请求,也不需要。看看你是怎么做到的?您只是在同一时间发出多个请求,然后等待每个请求返回请求的内容?