【发布时间】:2021-11-12 14:04:57
【问题描述】:
这是我的 Firebase 数据库中的安全规则:
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /links/{linkId} {
allow update, create: if request.auth.uid;
}
}
}
这是我使用 Firebase 版本 9 的 JS:
const db = getFirestore()
await addDoc(collection(db, "links"), {
title: 'my link title'
})
我 100% 确定我当前已登录。就在我的 addDoc 代码之前,这是正确记录当前用户的 uid:
const { getAuth } = await import('firebase/auth');
console.log(getAuth().currentUser.uid)
【问题讨论】:
-
你能编辑你的代码/repro 来证明用户确实登录了吗?例如。你能
console.log(auth.currentUser.uid)并在问题中显示更新的代码及其输出吗? -
@FrankvanPuffelen 我刚刚更新了描述以包含授权证明。
-
你能证明
currentUser值在addDoc调用之前不为空吗?它应该是单个 sn-p 代码,因为它也在您的应用程序中运行。很抱歉对此坚持,但安全规则对此错误的情况并不常见。
标签: javascript google-cloud-firestore firebase-security