【发布时间】:2019-05-04 23:04:52
【问题描述】:
我对 Firestore 规则的所有测试都做得很好。但是,我仍然需要为管理员测试一些路径。
我的应用程序中的管理员不是 Firebase 管理员,它是一个在其 customClaims 中具有这样设置权限的用户:
claims: {admin: true}
如何使用 npm 包 @firebase/testing 模拟用户 customClaims?我想不通。
谢谢
PS:下面是我目前正在做的事情。
export default class TestApplication {
public static getFirestoreInstance(auth, projectId: string): firebase.firestore.Firestore {
return firebase
.initializeTestApp({projectId, auth})
.firestore();
}
}
describe(){
const defaultAuthUser = {uid: "alice", email: "alice@example.com", "token": {"admin": true};
before(done => {
currentProjectId = TestUtils.getRandomId();
TestApplication.useFirestoreRules(currentProjectId, rules)
.then(() => done())
.catch(done);
});
it("I should be able to get another user if I'm an admin", () => {
return firebase.assertSucceeds(
TestApplication.getFirestoreInstance(defaultAuthUser, currentProjectId)
.collection(FirebaseReference.USERS_REF)
.doc(otherUserId)
.get()
);
}).timeout(5000);
}
【问题讨论】:
-
如果您展示一个 Firestore 规则测试示例,将会有所帮助。
标签: firebase testing google-cloud-firestore firebase-security