我是Firebase的新手。为什么我无法获得所要查询的内容。 在其他查询中,我实际上可以看到有效负载,但是在此查询中我看不到。这是我在firebase中的数据库的架构:
我需要获取具有所需日期的数据。这就是我创建查询的方式:
getSalesForToday() {
const data = this.fireStore.collection(
'Sales', ref => ref.where('TransactionDate', '==', formatDate(new Date, 'yyyy/MM/dd', 'en'))
);
console.log(data);
}
但是除了这个以外,它没有给我任何结果:
AngularFirestoreCollection {ref: CollectionReference, query: Query, afs: AngularFirestore}
afs: AngularFirestore {scheduler: FirebaseZoneScheduler, firestore: Firestore, persistenceEnabled$: Observable}
query: Query {_query: Query, firestore: Firestore}
ref: CollectionReference {_query: Query, firestore: Firestore}
__proto__: Object
我需要你的帮助。谢谢。
答案 0 :(得分:0)
您需要创建并执行查询:
getSalesForToday() {
let query = ref.where('TransactionDate', '==',
formatDate(new Date, 'yyyy/MM/dd', 'en'))
.get()
.then(snapshot => {
if (snapshot.empty) {
console.log('No matching documents.');
return;
}
snapshot.forEach(doc => {
// Do something
console.log(doc);
});
})
.catch(err => {
console.log('Error getting documents', err);
});
}
ref必须是对预期包含以下内容的集合的引用 值。
答案 1 :(得分:0)
const data = this.fireStore.collection(
'Sales', ref => ref.where('TransactionDate', '==', formatDate(new Date, 'yyyy/MM/dd', 'en'))
);
fireStore.collection
仅返回可观察值。您仍然需要订阅此Observable才能使用数据。
const data$ = this.fireStore.collection('Sales',
ref => ref.where('TransactionDate', '==', formatDate(new
Date,'yyyy/MM/dd', 'en')));
// Subscribing to collection observable to log out the data
data$.subscribe(data => console.log(data))
请记住,只要不使用此订阅,就需要取消订阅。
另外,请检查async pipe
以获得有关在角度https://angular.io/api/common/AsyncPipe中使用可观察物的最佳做法的更多信息