代码之家  ›  专栏  ›  技术社区  ›  Aditya Tandon

安全性-如何在Android应用程序中实现用户之间的阻止功能,使他们无法再联系到彼此。

  •  -1
  • Aditya Tandon  · 技术社区  · 7 年前

    我正在开发一个使用FireStore作为数据库的Android应用程序。这是一个类似于Tinder的聊天/约会应用程序,搜索附近的用户进行聊天。所以,伙计们,我需要你们在“阻止用户”功能方面的帮助,比如,如果用户1因为任何原因阻止了用户2,我想在用户1应用程序内的阻止用户活动列表中显示该阻止的用户2,显然,这两个用户不应该在应用程序中的任何位置看到彼此,即使在搜索中也不应该像这样。导火线。

    稍后,如果用户1决定取消阻止用户2,则用户2应再次出现在搜索中。

    所以请帮帮我。我被困在这里,不知道如何完成它。所以请提前帮助和感谢你们。我知道你一定会帮我的。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Alex Mamo    7 年前

    假设您有一个用户集合,其中每个用户都是 users 集合,为了解决此问题,建议您添加类型为的新属性 array 在这样的每个用户对象下:

    Firestore-root
       |
       --- users (collection)
            |
            --- uid (document)
                 |
                 --- blockedUsers: ["friendUid", "friendUid"]
                 |
                 --- //other user properties
    

    搜索附近的用户时,请将找到的每个用户添加到列表中。拥有所有附近用户的列表,您现在可以检查搜索附近用户的用户是否在 blockedUsers 是否列出。您可以使用如下查询来实现此目的:

    FirebaseFirestore rootRef = FirebaseFirestore.getInstance();
    String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
    Query query = rootRef.collection("users").whereArrayContains("blockedUsers", uid);
    

    通过这种方式,您只能向用户显示已经或尚未将其添加到阻止列表中的附近用户。