【问题标题】:What is the recommended practice for generating unique IDs in Firebase?在 Firebase 中生成唯一 ID 的推荐做法是什么?
【发布时间】:2020-11-27 03:35:34
【问题描述】:

在 SQL Server 中,每当我们想要生成唯一 ID 时,我们都有 NEW_ID() 函数。有时,当难以分配主键时,我会使用它来唯一标识一行。

我现在正在编写一个 kotlin android 应用程序,我需要将用户信息存储在一个集合 -> 文档中。为每个用户生成唯一 ID 的推荐做法是什么?我应该使用从 1 开始的简单递增值吗?

【问题讨论】:

    标签: android firebase kotlin google-cloud-firestore


    【解决方案1】:

    Firestore 不为文档实现自动递增 ID。自己实施会导致性能损失——这根本无法按照 Firestore 的要求进行扩展。

    如果您将新文档添加到集合中,并且它们还没有自然 ID,那么当您对 CollectionReference 使用 add() 方法时,SDK 将为您生成一个随机 ID。这是添加新文档的首选方式,在documentation 中有介绍。

    如果您需要对这些文档进行排序,则应添加一个可用于对查询进行排序的字段。如果你想要基于时间的排序,你应该添加一个带有当前时间的时间戳字段。

    【讨论】:

      【解决方案2】:

      如果您要对用户进行身份验证,那么我建议您使用 firebase 自身生成的 UID。您可以参考this 获取当前用户的UID

      否则,您可以像我们在使用实时数据库时使用 push() 一样生成唯一 ID。

      DocumentReference key;
      key = db.collection("YOUR_COLLECTION_NAME").document();
      UniqueID = key.getId();
      

      现在您可以将此UniqueID 用作文档。

      【讨论】:

        猜你喜欢
        • 2023-03-22
        • 2015-03-28
        • 2011-08-08
        • 1970-01-01
        • 2020-05-02
        • 1970-01-01
        • 1970-01-01
        • 2011-07-17
        • 1970-01-01
        相关资源
        最近更新 更多