如何为ID插入具有唯一GUID的新Firestore集合文档?

时间:2020-06-10 00:14:12

标签: google-cloud-firestore

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

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

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

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

所以,两件事之一:

1-我用单独创建的唯一GUID生成每个文档。如何确保其唯一性? (除了查询集合以查看其是否已存在)

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

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

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只是为了确保我最终获得真正的随机性