Android Firebase-在列表上进行筛选
我正在制作一个android应用程序,我需要存储一些关于用户的数据,比如他们的firebase云消息令牌。我的数据可以是这样的,其中用户的id是他的电话号码: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" : "...",
{
"users" : {
"+34.....56" : {
"fcm_token" : "...",
...
},
"+34.....45" : {
"fcm_token" : "...",
...
},
...
}
}
问题是,我希望每个用户都能看到他的哪些联系人正在使用该应用程序。所以我有一个电话号码列表(用户的联系人),我想用这个列表过滤数据库中的用户。我知道equalTo()
方法只能对单个值进行过滤
我该怎么办?如果我用equalTo()
为每个电话号码发出请求,这将是非常痛苦和昂贵的。如果我请求获取数据库的所有用户,然后在客户端进行过滤,那么成本也会非常高
在我的应用程序中,过滤电话号码列表是一件非常重要的事情。firebase是否适用于此,还是应该使用其他数据库?如果您按用户的电话号码存储用户,则不需要
equalTo()
。除此之外,操作速度比您预期的要快得多。请参阅。@FrankvanPuffelen:但是如果不使用equalTo()
,我怎么办?我需要将列表中的每个电话号码与firebase db上的电话号码进行比较。我不知道如何同时发送多个请求无法同时发送多个这样的请求,也不需要。看看你是怎么做到的?您只需在同一时间发出多个请求,然后等待每个请求返回请求的内容?如果您按用户的电话号码存储用户,则不需要equalTo()
。除此之外,操作速度比您预期的要快得多。请参阅。@FrankvanPuffelen:但是如果不使用equalTo()
,我怎么办?我需要将列表中的每个电话号码与firebase db上的电话号码进行比较。我不知道如何同时发送多个请求无法同时发送多个这样的请求,也不需要。看看你是怎么做到的?您只是在同一时间发出多个请求,然后等待每个请求返回请求的内容?