我正在尝试使用 vuejs 和firebase作为后端来构建博客。
在本地工作时,我按预期从firestore中获取数据,但是在部署应用程序(使用firebase托管)时,我在控制台上收到Uncaught (in promise) FirebaseError: Missing or insufficient permissions
,即使是艰难的我也允许在不使用规则ATM的情况下进行读取。
我的Firestore规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read,
write: if request.auth != null;
}
}
}
我还在客户端使用 vuefire 软件包。 我的代码: firebaseAPI.json :
import firebase from "firebase/app";
import "firebase/firestore";
firebase.initializeApp(firebaseConfig);
export const db = firebase.firestore();
我要从Firestore数据库初始化数据的组件:
<script>
import Article from "@/components/Article";
import { db } from "@/firebase/firebaseAPI";
export default {
name: "Home",
components: {
Article
},
data: () => ({
recipesArray: []
}),
computed: {},
firestore: {
recipesArray: db.collection("recipes")
}
};
</script>
编辑
问题解决了。这是规则语法的问题,由于每个操作都有不同的规则,因此我不得不将其分成2个不同的allow语句。
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read;
//write: if
// request.time < timestamp.date(2020, 10, 29);
allow write: if request.auth != null;
}
}
}