我正在使用Cloud Firestore作为我的Ionic / Cordova应用程序的数据库。
我的问题是尝试从Firestore数据库“获取”存储的数据,并在我的“计算功能”中使用它们。
Firestore中的我的数据库结构如下:
UniqueID (collection)
>
1000 (document)
>
Year (field)
Info (field)
1020 (document)
>
Year (field)
Info (field)
8394 (document)
Year (field)
Info (field)
4543 (document)
>
Year (field)
Info (field)
我当前的代码能够从Firestore检索/获取数据,但我无法利用这些数据,因为我找不到办法。
获取数据功能:
firebase.firestore().collection(`${user.uid}`).get().then(snapshot => {
snapshot.forEach(doc => {
console.log(doc.id, '=>', doc.data());
});
})
.catch(err => {
console.log('Error getting documents', err);
});
此doc.id显示文档名称,doc.data()显示该文档中的Fields值。
此函数检索集合中的所有文档。 (按预期) 我尝试使用Observable with Interface但无法使其工作。
有没有办法将检索数据动态保存到某种对象,然后在其他功能中使用它?
谢谢
答案 0 :(得分:3)
我相信你需要映射数据,对吧?
function list(user) {
return firebase.firestore()
.collection(user.uid)
.get()
.then(snapshot => {
const list = [];
snapshot.forEach(doc => {
const data = doc.data()
data.id = doc.id;
list.push(data);
});
return list;
})
.catch(err => {
console.log('Error getting documents', err);
});
}
list({ uid: 'some-valid-uid' }).then((list) => {
console.log(list);
});