【问题标题】:Working with Firebase Cloud Firestore Database使用 Firebase Cloud Firestore 数据库
【发布时间】:2019-07-05 02:18:36
【问题描述】:

我正在使用 Firebase Function 和 Firebase Cloud Firestore 制作 API。

我正在尝试使用 Firestore 来存储有关不同用户的数据,API 将根据这些数据来决定结果。该 API 将用于检测我的应用程序中的欺诈行为。出于同样的目的,我将使用多个 ID,例如 IMEI 号码、Android ID、UUID 和一个由 mu 应用分配的 ID。

我正在使用多个 ID,因为用户可以轻松地在有根设备上更改 Android ID。因此,我将使用多个 ID 来检测特定用户。

但问题是如何使用 Firestore 存储用户明智的数据,以便可以定位用户并且可以使用他/她在 Firestore 上的数据进行预测。

我想实现以下目标:

User(Collection)

|

|-->(IMEI, Android ID, UUID, ID)(Should be searchable using all the IDs)

         |

         |--> (A)Other Data Such As Activity ETC

         |--> (B)Other Data such as Session ETC.

我知道我可以创建一个集合(例如用户)并进一步使用具有任何一个用户 ID 的文档,但是如何创建一个可以通过使用任何用户 ID 访问的文档? 我不想为同一个用户群创建多个文档,因为这会占用我的存储配额。

任何帮助将不胜感激。谢谢!

【问题讨论】:

    标签: java android firebase database-design google-cloud-firestore


    【解决方案1】:

    只需将您不同的IDs 添加到(唯一的)User 文档(作为不同的字段),然后根据您要用于查询的ID 定义不同的查询。比如:

    boolean imeiId = false;
    boolean androidId = false;
    ....
    
    //Set the desire ID to true
    
    CollectionReference usersRef = db.collection("users");
    
    Query query = null;
    if (imeiId) {
        query = usersRef.whereEqualTo("imei_Id", ".....");
    } else if (androidId) {
        query = usersRef.whereEqualTo("android_Id", ".....");
    } else if (uuId) {
        ...
    } 
    

    【讨论】:

    猜你喜欢
    • 2019-08-07
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    • 2019-10-29
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 2021-06-19
    相关资源
    最近更新 更多