我正在尝试在我的React-Native应用程序中获取集合的文档,但是我不知道如何通过ID(键)来获取它们。 PS:我在文档中没有任何称为唯一ID或ID的字段,但是据我了解,当我创建一个代表该文档名称(20个字符ID)的文档时,唯一ID是自动生成的键。 / p>
这是我获取文档内所有字段的方式:
var ref = firebase.firestore().collection('discounts')
.orderBy('rest_id')
编辑:
getDiscounts = () => {
try {
this.setState({
loading: true
})
var ref = firebase.firestore().collection('discounts')
.orderBy('rest_id')
.limit(this.state.limit)
ref.onSnapshot((querySnapshot => {
var discounts = querySnapshot.docs.map(document => document.data());
var lastVisibleDiscount = discounts[discounts.length - 1].rest_id;
this.setState({
discounts: discounts,
lastVisibleDiscount: lastVisibleDiscount,
loading: false,
});
}));
}
catch (error) {
console.log(error);
}
}
答案 0 :(得分:1)
要按照其rest_id
字段的值的顺序打印集合中文档的键,可以执行以下操作:
firebase.firestore().collection("discounts").orderBy('rest_id').get().then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
console.log(doc.id);
});
});
这几乎是getting all documents from a collection文档中代码的文字副本,因此我建议在此花一些时间。
答案 1 :(得分:1)
您可以使用(使用await / async)
const ref = await ref.get()
它将有一个名为docs的数组,您可以对其进行映射以获取文档的ID和数据:
const data = ref.docs.map(doc => {return {id: doc.id, data: doc.data()} })