This question already has an answer here:
How to get data from firestore DB in outside of onSnapshot
(1个答案)
在11个月前关闭。
我编写了以下代码来呈现一些帖子(存储在Cloud Firestore实例中)。我正在使用mithril.js。
运行代码时,我将获得以下控制台输出:
![javascript - 如何获取Cloud Firestore查询返回的数据?-LMLPHP javascript - 如何获取Cloud Firestore查询返回的数据?-LMLPHP]()
这段代码的结果是相同的:
![javascript - 如何获取Cloud Firestore查询返回的数据?-LMLPHP javascript - 如何获取Cloud Firestore查询返回的数据?-LMLPHP]()
为了回应Chris Sandvik的回答,我还尝试了以下代码
这仍然会导致相同的问题:
您需要使用docs属性访问QuerySnapshot中的文档数组,并使用
此处更多信息:https://firebase.google.com/docs/reference/js/firebase.firestore.QueryDocumentSnapshot.html
(1个答案)
在11个月前关闭。
我编写了以下代码来呈现一些帖子(存储在Cloud Firestore实例中)。我正在使用mithril.js。
let SummaryPostView = {
posts: [],
view: function () {
let query = blogModels.postModel.getNLatest(20, "created");
query.then(function (data) {
this.posts = data;
console.log("INSIDE VALUE: ");
console.log(this.posts);
});
console.log("OUTSIDE VALUE: ");
console.log(this.posts);
}
};
运行代码时,我将获得以下控制台输出:
this.posts
的值在函数外部与this.posts inside the function.
的值不同。由于this
的行为可能令人困惑,因此我也尝试了以下代码:let SummaryPostView = {
posts: [],
view: function () {
let query = blogModels.postModel.getNLatest(20, "created");
var x = [];
query.then(function (data) {
x = data;
console.log("INSIDE VALUE: ");
console.log(x);
});
console.log("OUTSIDE VALUE: ");
console.log(x);
}
};
这段代码的结果是相同的:
为了回应Chris Sandvik的回答,我还尝试了以下代码
let SummaryPostView = {
posts: [],
view: function () {
let query = blogModels.postModel.getNLatest(20, "created");
query.then(function (data) {
this.posts = data.docs.map(function (doc) {
let out = doc.data();
out.id = doc.id;
return out;
});
console.log("INSIDE");
console.log(this.posts)
});
console.log("OUTSIDE");
console.log(this.posts);
}
};
这仍然会导致相同的问题:
最佳答案
由于您的输出是QuerySnapshot,因此您需要像这样访问数据:
query.then(function (data) {
this.posts = data.docs.map(doc => {
let out = doc.data();
out.id = doc.id;
return out;
});
});
您需要使用docs属性访问QuerySnapshot中的文档数组,并使用
.data()
方法访问其数据。此处更多信息:https://firebase.google.com/docs/reference/js/firebase.firestore.QueryDocumentSnapshot.html
关于javascript - 如何获取Cloud Firestore查询返回的数据? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56707491/