当我尝试使用代码从Firestore通过ID获取文档时,标题就说明了一切
firestore.collection('my_collection').get('foo')
.then(snapshot => {
snapshot.forEach(doc => {
const data = doc.data();
console.log(doc.id, data);
});
})
.catch(err => {
console.log('Error getting documents', err);
});
它引发了这个错误:
FirebaseError: FirebaseError: Function Query.get() requires its first argument to be of type object, but it was: "foo"
因此,我提供了一个ID为{id: "foo"}
的对象
这给了我另一个错误:
FirebaseError: FirebaseError: Unknown option 'id' passed to function Query.get(). Available options: source
如何通过ID从集合中获取文档?
答案 0 :(得分:2)
firestore的get
方法不接受任何参数。
您需要使用doc
方法传递ID,如here
firestore.collection('my_collection').doc('foo').get()
.then(snapshot => {
snapshot.forEach(doc => {
const data = doc.data();
console.log(doc.id, data);
});
})
.catch(err => {
console.log('Error getting documents', err);
});
答案 1 :(得分:0)
{key: value}
Se 代码如下
firestore()
.collection('products')
.where('category', 'in', categories)
.get()
.then(docs => {
docs.forEach(doc => {
const data = doc.data()
// adding new property id with id from Firestore
data.id = doc.id
newProducts.push(data)
})
setProducts(newProducts)
})
.catch(err => console.log(err))