我试图在我的Firestore DB现有的集合中插入一个文档,我尝试了建议的每一个解决方案,但仍然不工作...
Firestore规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow write, read: if true; // temporary rule to allow all writes
}
}
}
Firebase配置文件:
import { initializeApp } from "firebase/app";
import { getFirestore } from '@firebase/firestore'
import { getStorage } from 'firebase/storage'
const firebaseConfig = {
apiKey: process.env.FIREBASE_APIKEY,
authDomain: process.env.FIREBASE_AUTHDOMAIN,
projectId: process.env.FIREBASE_PROJECTID,
storageBucket: process.env.FIREBASE_STORAGEBUCKET,
messagingSenderId: process.env.FIREBASE_MESSAGINGSENDERID,
appId: process.env.FIREBASE_APPID,
measurementId: process.env.FIREBASE_MEASUREMENTID,
};
// Initialize Firebase
const app = initializeApp(firebaseConfig);
const db = getFirestore(app)
const storage = getStorage(app);
export { db, storage }
我的插入函数:
async function insertDoc() {
const data = { name: 'John Doe', email: 'john@example.com' };
const myCollectionRef = collection(db, 'restore');
await addDoc(myCollectionRef, data)
.then((docRef) => {
console.log('Document written with ID: ', docRef.id);
})
.catch((error) => {
console.error('Error adding document: ', error);
});
}
我的Firestore DB是什么样子的:
我尝试了自己创建的insertDoc()
函数,希望数据能插入到我的Firestore DB中。
2条答案
按热度按时间0yycz8jy1#
我可以看到你已经尝试使用firestore的官方文档,但是你把它弄混了一点。
在insert函数中,使用await,这是添加premises的正确方法(更多信息here)。
然而,你也在使用.then(),它用于为fetch()添加前提。你将有一个fecth():
在async函数中,添加premises的最佳方法是:
你可以在官方文档中找到更多的信息,但是当你选择一个版本时要小心,你必须点击“网络版本9”,因为看起来你正在使用这个版本的FireStore
myss37ts2#
我想出来了!我降级到Firebase版本7. 24. 0,并更新了我的代码以匹配版本(应用程序初始化,语法...),现在它完美地工作了!