从 Firestore 数据库中获取数据以及查询
Gets data from the Firestore Database along with the query
我只需要从 Firestore 数据库下载数据就可以了。它使我崩溃:
Cannot read property 'onSnapshot' of undefined
如何从 Firestore 获取数据并创建查询?
我的代码:
const messages = this.firestore.collection('chat', ref => {
ref.where('receiver_id', '==', employee.user.id);
}).valueChanges().subscribe((message) => {
console.log(message);
});
我的 Firestore 数据库:
消息将不会分配给您代码中的 const messages
。
你应该把你的逻辑放在订阅中。
let messages;
this.firestore.collection('chat', ref => {
return ref.where('receiver_id', '==', employee.user.id);
})
.valueChanges()
.subscribe((message) => {
console.log(message);
messages = message;
});
此外,您实际上需要从 message
响应中提取 data()。类似于 message.docs.map(doc => doc.data());
.
您没有从回调中返回任何内容,这意味着 AngularFire 最终尝试在 undefined
上调用 onSnapshot
。
应该是:
const messages = this.firestore.collection('chat', ref => {
return ref.where('receiver_id', '==', employee.user.id);
}).valueChanges().subscribe((message) => {
console.log(message);
});
或者更常见的写法是:
const messages = this.firestore.collection('chat', ref => ref.where('receiver_id', '==', employee.user.id))
.valueChanges().subscribe((message) => {
console.log(message);
});
getData() {
var array = []
return this.firestore.collection('chat', ref =>
ref.where('receiver_id', '==', this.employee.user.id)).snapshotChanges()
.subscribe(res => {
array = res.map(msg => {
return {
id: msg.payload.doc.id,
...msg.payload.doc.data() as {}
}
})
})
}
我只需要从 Firestore 数据库下载数据就可以了。它使我崩溃:
Cannot read property 'onSnapshot' of undefined
如何从 Firestore 获取数据并创建查询?
我的代码:
const messages = this.firestore.collection('chat', ref => {
ref.where('receiver_id', '==', employee.user.id);
}).valueChanges().subscribe((message) => {
console.log(message);
});
我的 Firestore 数据库:
消息将不会分配给您代码中的 const messages
。
你应该把你的逻辑放在订阅中。
let messages;
this.firestore.collection('chat', ref => {
return ref.where('receiver_id', '==', employee.user.id);
})
.valueChanges()
.subscribe((message) => {
console.log(message);
messages = message;
});
此外,您实际上需要从 message
响应中提取 data()。类似于 message.docs.map(doc => doc.data());
.
您没有从回调中返回任何内容,这意味着 AngularFire 最终尝试在 undefined
上调用 onSnapshot
。
应该是:
const messages = this.firestore.collection('chat', ref => {
return ref.where('receiver_id', '==', employee.user.id);
}).valueChanges().subscribe((message) => {
console.log(message);
});
或者更常见的写法是:
const messages = this.firestore.collection('chat', ref => ref.where('receiver_id', '==', employee.user.id))
.valueChanges().subscribe((message) => {
console.log(message);
});
getData() {
var array = []
return this.firestore.collection('chat', ref =>
ref.where('receiver_id', '==', this.employee.user.id)).snapshotChanges()
.subscribe(res => {
array = res.map(msg => {
return {
id: msg.payload.doc.id,
...msg.payload.doc.data() as {}
}
})
})
}