Javascript 如何获取最后一个Firestore ID文档
我需要Firestore的帮助。我有一个数据库,其中包含一组客户机,这些客户机有一些按ID命名的文档(1、2、3..) 我想要一个计算集合中文档数量的函数,并创建一个值为+1的新文档(例如:上一个文档是6,我想要一个新文档7) 这就是我所做的,但我不知道为什么它不起作用:Javascript 如何获取最后一个Firestore ID文档,javascript,firebase,react-native,google-cloud-firestore,Javascript,Firebase,React Native,Google Cloud Firestore,我需要Firestore的帮助。我有一个数据库,其中包含一组客户机,这些客户机有一些按ID命名的文档(1、2、3..) 我想要一个计算集合中文档数量的函数,并创建一个值为+1的新文档(例如:上一个文档是6,我想要一个新文档7) 这就是我所做的,但我不知道为什么它不起作用: async function pushName(name, surname) { const size = getID('Clients'); const newID = (size + 1).toString();
async function pushName(name, surname) {
const size = getID('Clients');
const newID = (size + 1).toString();
const docRef = firebase.firestore().collection('Clients').doc(newID);
await docRef.set({
FirstName: name,
LastName: surname,
});
return(
<View>
<Text>name: {name} </Text>
<Text>surname: {surname} </Text>
<Text>size: {size} </Text>
<Text>newID: {newID} </Text>
</View>
);
}
async function getID(){
const snapshot = await firebase.firestore().collection('Clients').get().then(function(querySnapshot) {
snapshot = querySnapshot.size;
});
return snapshot;
}
异步函数pushName(名称、姓氏){
const size=getID('Clients');
const newID=(大小+1).toString();
const docRef=firebase.firestore().collection('Clients').doc(newID);
等待docRef.set({
名字:名字,
姓:姓,,
});
返回(
名称:{name}
姓:{姓}
大小:{size}
newID:{newID}
);
}
异步函数getID(){
const snapshot=wait firebase.firestore().collection('Clients').get().then(函数(querySnapshot){
快照=querySnapshot.size;
});
返回快照;
}
这是我得到的输出:
我做错了什么?我怎么做
谢谢您的函数
getID
实际上并没有返回计数。它返回一个最终与计数解决的承诺。由于它是异步的,您需要等待它的结果以获得值
const size = await getID('Clients');
getID
也太复杂了-你不应该把wait
和then
混在一起。你可以大大简化它
async function getID(){
const snapshot = await firebase.firestore().collection('Clients').get()
return snapshot.size;
}
很有效,非常感谢!我能问你另一件事吗?我总是收到警告“设置一个长时间的计时器…”,我如何避免它?如果你有新的问题,请单独发布,并解释什么没有按你期望的方式工作。