我希望FirebaseRecyclerAdapter检查是否有邀请以电子邮件地址结尾,并显示uids。它以某种方式输出所有数据,好像没有过滤和排序。
这是json数据。
https://www.portal.example.net/apple-app-site-association
我想设置FirebaseRecyclerAdapter。这是适配器。
"invites" : {
"4u60kmvvO9TwzBrLpP5SG4ICU9r1_test5%2E@test%2Etest" : {
"cost" : "2",
},
"4u60kmvvO9TwzBrLpP5SG4ICU9r1_test4@test%2Etest" : {
"costs" : "0"
},
"UQW5VEAojMOyB2WGTU9aTPUBepg1_test6%2E@test%2Etest" : {
"costs" : "0"
}
}
为什么我在使用test@test.test电子邮件进行测试时获得所有这三项内容?我似乎已经阅读了文档,它应该可以工作。有什么想法吗?
更新即可。
mAdapter = new FirebaseRecyclerAdapter<Event, UserHolder>(
Event.class,
R.layout.layout,
UserHolder.class,
ref.child("invites").orderByKey().endAt(encodeAsFirebaseKey(email))
) {}
返回test @ test%2Etest。
private String encodeAsFirebaseKey(String string) {
return string.replace(".", "%2E");
}
答案 0 :(得分:0)
您似乎对endAt()
的工作方式感到困惑。它匹配所有字符串,以您传递的参数开头的字符串结尾。 不匹配以您传递的参数结尾的字符串。
所以endAt("4u60kmvvO9TwzBrLpP5SG4ICU9r1_test4@test%2Etest")
匹配:
"4u60kmvvO9TwzBrLpP5SG4ICU9r1_test5%2E@test%2Etest" : {
"cost" : "2",
},
"4u60kmvvO9TwzBrLpP5SG4ICU9r1_test4@test%2Etest" : {
"costs" : "0"
},
但是endAt("test@test%2Etest")
没有返回任何内容,因为没有密钥从那开始。