![](/img/trans.png)
[英]Uncaught TypeError: $(…).modal is not a function at HTMLButtonElement.<anonymous>
[英]Uncaught TypeError: firebase.firestore()…set is not a function at HTMLButtonElement.<anonymous>
我使用 Firebase 來開發 web 應用程序。 我收到此錯誤消息
Uncaught TypeError: firebase.firestore(...).collection(...).orderBy(...).limit(...).set is not a function
at HTMLButtonElement.<anonymous> (main.js:152)
因為這個代碼。
firebase.firestore().collection('script').orderBy('timestamp','desc').limit(1).set({
finaltext: resultText.value,
name: firebase.auth().currentUser.displayName,
uid: firebase.auth().currentUser.uid
},{merge: true}).catch(function(error){
console.error('Error writing new message to Firestore', error);
});
我搜索了互聯網,但找不到出現此錯誤消息的原因。 請給我一些建議好嗎?
方法limit
返回Query
類型的值:
限制
limit ( limit: number ): Query < T >
創建並返回一個只返回第一個匹配文檔的新查詢。
https://firebase.google.com/docs/reference/js/firebase.firestore.Query#limit
因此,當您要檢索數據時,會同時使用orderBy
和limit
。 如果要向數據庫添加數據,只需執行以下操作:
firebase.firestore().collection('script').set({
finaltext: resultText.value,
name: firebase.auth().currentUser.displayName,
uid: firebase.auth().currentUser.uid
},{merge: true}).catch(function(error){
console.error('Error writing new message to Firestore', error);
});
在使用set()
(使用合並選項)或update()
編寫新字段之前,您需要先使用get()
獲取所需的文檔。
firebase.firestore().collection('script').orderBy('timestamp','desc').limit(1).get()
.then(querySnapshot => {
if (!querySnapshot.empty) {
//We are sure the document exists, we can then use update()
return querySnapshot.docs[0].ref.update({
finaltext: resultText.value,
name: firebase.auth().currentUser.displayName,
uid: firebase.auth().currentUser.uid
});
} else {
throw new Error("No document");
}
})
.catch(error => {
console.log("Error:", error);
});
請注意, get()
方法返回一個QuerySnapshot
,因此您需要執行querySnapshot.docs[0]
以獲取與查詢返回的唯一DocumentSnapshot
對應的 DocumentSnapshot。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.