[英]How to update a document on Firestore based on query
我正在創建一個 web 表單頁面,它根據條件將輸入字段更新到相應的 Firestore 文檔中。 如何才能做到這一點?
我得到查詢結果的第一部分是好的,因為控制台日志顯示了正確的查詢結果。 但是,更新該文檔的第二部分不起作用
const reportForm = document.querySelector('#daily-reports');
reportForm.addEventListener('submit', (e) => {
e.preventDefault();
const forward = reportForm['forward'].value;
const reflected = reportForm['reflected'].value;
const upserror = reportForm['ups-switch'].value;
const transerror = reportForm['trans-switch'].value;
const transDesc = reportForm['transDesc'].value;
const upsDesc = reportForm['upsDesc'].value;
console.log(forward, reflected, upserror, transerror, transDesc, upsDesc);
firebase.initializeApp(config);
const db = firebase.firestore();
db.settings({timestampsInSnapshots: true});
firebase.auth().onAuthStateChanged(user => {
if(user) {
console.log(user.uid);
console.log(user.email);
//Query begins here
db.collection('Stations').where('userId', "==", user.uid).get().then(function(querySnapshot) {
querySnapshot.forEach(function (doc) {
doc.data().update(
{
"ForwardPower": forward,
"ReflectedPower": reflected,
"TransDesc": transDesc,
"TransmitterError": transerror,
"UPSError" : upserror,
"UPSDesc": upsDesc}
);
console.log(doc.id, " => ", doc.data());
});
}).catch(function(error) {
console.log("Error getting documents: ", error);
});
}
});
});
運行代碼后,這是我得到的錯誤:
Error getting documents: TypeError: "doc.data(...).update is not a function"
<anonymous> func.js:42
forEach database.ts:2131
forEach document_set.ts:97
inorderTraversal sorted_map.ts:324
inorderTraversal sorted_map.ts:136
forEach document_set.ts:96
forEach database.ts:2130
<anonymous> func.js:41
data()僅用於 DocumentSnapshot 以獲取其原始內容。 返回的 object 只是一個普通的 JavaScript object 並且沒有任何方法。
如果要更新由 DocumentSnapshot 表示的文檔,請使用該 object 的ref屬性來獲取DocumentReference ,然后對該 object 調用update()方法。
doc.ref.update({...})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.