我需要实现一个Firebase好友请求系统。这不是正常的友谊系统。所以我有一个用户列表。每个用户都有一个“分数”字段。 用户应该能够向得分最高的用户发送请求。 并且不允许重复的请求。
因此,我必须使用“ orderBy(“ score”)“来查询得分最高的用户。但是问题是我无法通过这种方式找到他们是否已经是朋友。
friends = {
"userId 1": {
"userID 2": true,
"userId 4": true,
"userId 5": true,
"userID 15": true
},
"userId 2": {
"userID 1": true,
"userID 3": true,
"userID 4": true
}
}
users = {
"userID 1": {
"name": "alex",
"score": 12
},
"userID 2": {
"name": "alex",
"score": 40
},
"userID 3": {
"name": "alex",
"score": 30
},
"userID 4": {
"name": "alex",
"score": 9
}
}
因此,我正在寻求一种方法,以根据与特定用户相关的得分对一组特定的**非朋友**进行过滤。
非常感谢您的帮助。
目前,我可以按分数排序。但是不能过滤非朋友。
DatabaseReference myRef = FirebaseDatabase.getInstance().getReference("users");
Query myQuery = myRef.orderByKey("score).limitToFirst(20);
答案 0 :(得分:0)
Firebase的查询模型无法通过缺少属性来进行过滤。您将不得不为非朋友存储大量重复数据(即使按照NoSQL标准,在这里看起来也不合理),或者加载所有用途中的最高分,然后排除非朋友客户端。