Javascript/Firestore: uncatch (in promise) TypeError: fireba



我正在尝试编写一个简单的表单,该表单获取单个用户输入,其余的都是在现有文档中设置(创建(新子文档的常量变量。目前我被抛出一个错误:

未捕获(承诺中(类型错误: Firebase.firestore(...(.集合(...文档(...集合(...设置 不是函数

这是代码:

<form id="bgForm" method="POST">
<div class="wrap-input100 validate-input m-t-25 m-b-35" data-validate="Enter blood glucose">
<h5>Update Blood Glucose</h5>
<font face="Montserrat">Input Blood Glucose: </font>
<input class="input100" type="text" name="inputBloodGlucose" style="font-family:Montserrat;" id="inputBg" required />
<button type="submit" class="btn btn-primary" id="updateBG">Update Blood Glucose</button>
</form>
<script>
(function(){
//Update BG
$('#bgForm').on('submit', async function (e) {
e.preventDefault();
var data = {
bgReading: parseInt($('#inputBg').val()), //get bg int
dateAdded: firebase.firestore.Timestamp.fromDate(new Date()),
isActive: true,
};
firebase.auth().onAuthStateChanged(function(user){
if(user){
this.userId = user.uid; //stores the userid
}
firebase.firestore().collection("users").doc(userId).collection("glucose").set({
'bgReading': data.bgReading, 'dateAdded': data.dateAdded, 
'isActive': data.isActive,
})
.then(function(){
window.alert("Blood Glucose updated!");
// window.location.href = "diabetesManagement.php"; 
})
.catch(function(error){
console.log("Error updating blood glucose", error);
window.alert("Error updating blood glucose" + error);
});
});
});
})();
</script>
</div>

我正在使用

firebase.auth().onAuthStateChanged(function(user){ 
if(user){this.userId = user.uid;}

获取当前登录用户的uid,然后将其存储在变量中。我不能使用此代码执行查询吗?因为这是我目前唯一依赖的原因,因为错误被抛向我。

更改以下内容:

firebase.firestore().collection("users").doc(userId).collection("glucose").set({
'bgReading': data.bgReading, 'dateAdded': data.dateAdded, 
'isActive': data.isActive,
})

进入这个:

firebase.firestore().collection("users").doc(userId).collection("glucose").add({
'bgReading': data.bgReading, 'dateAdded': data.dateAdded, 
'isActive': data.isActive,
})

CollectionReference中没有set方法,您需要使用add,它将添加一个包含传递数据的新文档。

https://firebase.google.com/docs/reference/js/firebase.firestore.CollectionReference.html#add

相关内容

最新更新