【问题标题】:Structure database to send friend requests to the people user haven't send构造数据库以向用户尚未发送的人发送好友请求
【发布时间】:2019-06-07 10:44:20
【问题描述】:

我需要实现一个 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);

【问题讨论】:

    标签: android firebase firebase-realtime-database google-cloud-firestore


    【解决方案1】:

    Firebase 的查询模型无法根据属性的缺失进行过滤。您将不得不为非好友存储大量重复数据(即使按照 NoSQL 标准,这在此处似乎也不合理),或者加载所有用途的最高分,然后排除非好友客户端。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-19
      • 1970-01-01
      • 2015-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多