我想从Firestore中的子文档地图中获取特定数据,并将其显示在Web应用程序页面中。我真的不知道如何在var.textContent = doc.data().
期间调用数据...
注意:阶段是字段图
可帮助解决我的问题的图片:
到目前为止,这就是我所拥有的:
<script>
firebase.auth().onAuthStateChanged(user => {
if(user){
this.userId = user.uid;
} //stores the user id in variable
const fitbitremSleep= document.querySelector('#fitbitSleepListRemSleep');
function renderFitbitSleep(doc){
let li = document.createElement('li');
li.setAttribute('data-id', doc.id);
let remSleep = document.createElement('span');
let lbremSleep = document.createElement('span');
remSleep.textContent = doc.data();
lbremSleep.textContent = "Minutes of REMSleep: ";
li.appendChild(lbremSleep);
li.appendChild(remSleep);
fitbitremSleep.appendChild(li);
}
let userRef1 =
firebase.firestore().collection("users").doc(userId).collection("fitbit_sleep").orderBy("dateAdded",
"desc").limit(1);
return userRef1.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
console.log(doc.id, " => ", doc.data());
renderFitbitSleep(doc);
});
})
.catch(function(error) {
console.log("Error getting documents: ", error);
});
});
});
</script>
编辑
为进一步阐明我的问题,是否可以使用doc.data()
在firestore中获取字段地图的内容?因为我一直在使用doc.data()
来获取子文档的字段。
示例
因为我一直在使用
doc.data()
来获取子文档的字段。
我用于设置非地图字段的代码:
minutesAsleep.textContent = doc.data().minutesAsleep;
请注意:minutesAsleep
已经是子文档中的非地图字段,可以使用上述代码轻松地从数据库中拉出。
答案 0 :(得分:0)
尝试并修改代码后:
remSleep.textContent = doc.data();
lbremSleep.textContent = "Minutes of REMSleep: ";
替换为:
remSleep.textContent = doc.data().stages.remSleep;
lbremSleep.textContent = "Minutes of REMSleep: ";
进一步说明:
doc.data().
获取文档数据
然后
doc.data().stages
在地图字段阶段下获取文档数据
最后
doc.data().stages.remSleep;
在地图字段阶段下获取docs数据,并在该地图下获取remSleep的数据。
我希望这可以对任何人有所帮助,尤其是那些使用javascript和firebase开发的人:)