我很清楚当你在firebase中创建文档时它会生成一个随机的唯一ID但我想基于5个随机数创建我自己的let id = Math.floor(Math.random() * (99999 + 1));
现在我的问题是我如何检查我生成的数字是否已经在我创建的文档中?是否有一种方法可以检查文档ID,然后使其随机化另一个数字?
到目前为止,我都是在外面做的因为我不知道如何在doc.set
中检查它我希望我的doc.id
和内部值id
都是相同的
let id = Math.floor(Math.random() * (99999 + 1));
const docId = `${id}`;
const registrarPedido = (e) => {
e.preventDefault();
const docRef = db.collection('usuarios').doc(user.uid).collection('pedidos').doc(docId)
docRef.set({
nombre: nombre,
grado: grado,
total: totalPrice,
escuela: escuela,
metodoDePago: "ACH",
estadoDePago: "Pendiente",
fecha: formattedDate,
id: docId,
entrega: "Retirar en Sede"
}).then((r) => {
history.push("/Inicio");
})
}
- 如果你想确定它不存在,你可以查询文档ID来检查它是否存在。如果没有,可以使用。
类似:
admin.firestore().collection('usuarios').doc(nuevo_id).get.then(res=>{
if(!res.data().exists){
admin.firestore.collection('usuarios').doc(nuevo_id).set({ nombre: nombre,
grado: grado,
total: totalPrice,
escuela: escuela,
metodoDePago: "ACH",
estadoDePago: "Pendiente",
fecha: formattedDate,
id: docId,
entrega: "Retirar en Sede"
})
}
});
- 如果你打算使用很多文档,并且使用相同ID的概率足够大,你可以用每个ID创建一个文档,并使用它来生成一个新的ID。
在这种情况下,我不会使用随机ID来更容易和更快地生成。