我尝试通过以下方式检索数据,但没有成功:Unhandled Rejection (TypeError): snapshot.val is not a function。 (在“snapshot.val()”中,“snapshot.val”未定义)
var companyScore, userScore;
firebaseApp.firestore().collection('JobPosting')
.doc(postId).get().then(snapshot => {
console.log("Snapshot");
console.log(snapshot);
companyScore = snapshot.val().score;
});
firebaseApp.firestore().collection('people')
.doc(currentUser.uid).get().then(snapshot => {
userScore = snapshot.val().score;
});
我想我需要一个解决方案来获取快照数据(假设是 json 或哈希表),以便我可以获取 score
索引下的值。
最佳答案
您应该使用 .data()
而不是 .val()
因此,更新后的代码将是这样的:
var companyScore, userScore;
firebaseApp.firestore().collection('JobPosting')
.doc(postId).get().then(snapshot => {
console.log("Snapshot");
console.log(snapshot);
companyScore = snapshot.data().score;
});
firebaseApp.firestore().collection('people')
.doc(currentUser.uid).get().then(snapshot => {
userScore = snapshot.data().score;
});
官方文档链接:https://firebase.google.com/docs/firestore/query-data/get-data#get_a_document
关于javascript - 使用 JavaScript 从 Firebase 获取值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68172606/