我可以生成它们并插入它们,但这不能保证唯一性。
自动生成的Firestore ID如下:1234567890asdfghjklo
(20个字符的utf-8字符串)
我希望他们在我的收藏中看起来像这样:2e8f782e-f162-41db-a3ab-e3e43cda2e28
(GUID)
就像我说的那样,我可以创建它们并将其与每个文档一起插入,但是即使机会很小,id仍然有可能与前一个匹配。
所以,两件事之一:
1-我用单独创建的唯一GUID生成每个文档。如何确保其唯一性? (除了查询集合以查看其是否已存在)
2-我切换了一些隐藏的Firestore设置,使其在自动生成的_id中使用GUID而不是20个字符的UTF-8
有人可以帮助我吗?
答案 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只是为了确保我最终获得真正的随机性