【问题标题】:How can I insert new Firestore collection documents with unique GUID for an id?如何插入具有唯一 GUID 的新 Firestore 集合文档?
【发布时间】:2020-06-10 00:14:12
【问题描述】:

我可以生成并插入它们,但这并不能保证唯一性。

自动生成的 Firestore id 如下所示:1234567890asdfghjklo(20 字符 utf-8 字符串)

我希望它们在我的收藏中看起来像这样:2e8f782e-f162-41db-a3ab-e3e43cda2e28 (GUID)

就像我说的,我可以创建它们并将它们与每个文档一起插入,但即使机会很小,id 仍然有可能匹配上一个。

所以,两件事之一:

1- 我使用单独创建的唯一 GUID 生成每个文档。我怎样才能确保它是独一无二的? (除了查询集合以查看它是否已经存在)

2- 我切换了一些隐藏的 Firestore 设置,使其在其自动生成的 _ids 中使用 GUID 而不是 20 字符的 UTF-8

谁能帮我解决这两个问题?

【问题讨论】:

    标签: google-cloud-firestore


    【解决方案1】:

    Firestore ID 是在客户端生成的。所以我编辑了它的代码来生成一个 GUID 并在插入时使用它

    function newId() {
    // Alphanumeric characters
    const chars =
      'ABCDEF0123456789';
    let autoId = '';
    for (let i = 0; i < 32; i++) {
      if(i === 8 || i === 12 || i === 16 || i === 20) autoId += "-";
      autoId += chars.charAt(Math.floor(Math.random() * chars.length));
    }
    return autoId;
    }
    

    编辑:最终使用 uuid npm 只是为了确保我最终得到真正的随机性

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-03
      • 2014-08-16
      • 1970-01-01
      • 2018-12-31
      • 1970-01-01
      • 2017-08-16
      • 1970-01-01
      • 2020-08-25
      相关资源
      最近更新 更多