我在我的React前端中有一个计数器,我想***显示来自我的firestore数据库的文档值***。但是,我似乎无法访问firestore数据,下面的代码导致以下错误:
Navbar.js(客户端代码)
import { db, app, functions } from "./firebase";
import { getFunctions, httpsCallable } from "firebase/functions";
import { Link } from "react-router-dom";
import "../App.css";
import React, { useState } from "react";
import {
getFirestore,
collection,
doc,
getDocs,
onSnapshot,
getDocFromCache,
} from "firebase/firestore";
async function checker() {
const querySnap = await getDocs(collection(db, "Count")); //Count is collections name
querySnap.forEach((doc) => {
console.log(doc.id, " => ", doc.data());
});
}
错误消息
js:28未捕获(在承诺中)Firebase错误:缺少权限或权限不足。
我还没有实现任何firebase auth(尽管感觉我需要在部署之前实现),我已经尝试调整我的firestore规则(如下所示,尽管我知道它们太脆弱了)。
消防仓库.规则
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if request.auth != null;
}
}
}
我的目标是:
1.成功读取firestore数据
1.调整安全性规则以提高安全性
1.根据我的需要,确定是否需要在此处添加身份验证
会感激任何和所有的建议,我仍然是新的消防基地。
这是我的配置文件,如果有帮助的话?
firebase.js(与Navbar.js位于同一目录中)
import { initializeApp } from 'firebase/app';
import { getFunctions, connectFunctionsEmulator } from 'firebase/functions';
import { getAnalytics } from "firebase/analytics";
import { getFirestore, collection, getDocs } from 'firebase/firestore';
import {getAuth} from "firebase/auth";
const firebaseConfig = {
apiKey: //Hiding my data for this post
authDomain:
projectId:
storageBucket:
messagingSenderId:
appId:
measurementId:
};
const app = initializeApp(firebaseConfig);
export const functions = getFunctions(app);
export const db = getFirestore(app);
export const analytics = getAnalytics(app);
export default {app, db, analytics, functions};
1条答案
按热度按时间pdkcd3nj1#
根据您的首选要求,如果您希望在访问特定文档/集合时使用特定规则,我建议您使用自定义安全规则(数据验证)。
您可以检查下面的示例Firestore规则,其中只要集合与字段值匹配,就不需要身份验证。
如果您有任何问题或需要澄清,请告诉我。