0
如果你用的是自动ID,则可以生成新的自动ID并查询最接近的自动ID,如Dan McGrath的Answer中所述。
我最近创建了一个随机报价API,需要从Firestore集合中获取随机报价。下面是我的解决方法:
var db = admin.firestore();
var quotes = db.collection("quotes");
var key = quotes.doc().id;
quotes.where(admin.firestore.FieldPath.documentId(), '>=', key).limit(1).get()
.then(snapshot => {
if(snapshot.size > 0) {
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
});
}
else {
var quote = quotes.where(admin.firestore.FieldPath.documentId(), '<', key).limit(1).get()
.then(snapshot => {
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
});
})
.catch(err => {
console.log('Error getting documents', err);
});
}
})
.catch(err => {
console.log('Error getting documents', err);
});
查询的关键是:
.where(admin.firestore.FieldPath.documentId(), '>', key)
收藏