【发布时间】:2021-03-19 19:42:07
【问题描述】:
我正在尝试为我的 Firestore 规则设置单元测试,并且我遵循了 video tutorial,但由于某种原因,firebase.assertSucceeds.(testDoc.get()) 总是通过,即使我没有被安全规则允许。
安全规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
单元测试:
process.env.FIRESTORE_EMULATOR_HOST = 'localhost:8090';
const assert = require('assert');
const firebase = require('@firebase/testing');
const PROJECT_ID = 'my-proj-id';
describe("Security Rules",()=>{
it("monkeytest", async()=>{
const db = firebase.initializeTestApp({projectId:PROJECT_ID}).firestore();
const testDoc = db.collection("foo").doc('bar');
await firebase.assertSucceeds(testDoc.get());
})
});
无论我对安全规则进行什么更改,此单元测试都始终通过。当我改用 firebase.assertFails(testDoc.get()) 时,无论我更改什么,测试总是失败。
【问题讨论】:
标签: unit-testing google-cloud-firestore firebase-security