VueJs CRUD 应用程序和 Firebase 授权不起作用?试图支持 Auth 用户的安全规则

VueJs CRUD app and Firebase Authorization not working? Trying to shore up security rules for Auth Users

我有一个基本的 VueJS CRUD 应用程序,我在本地机器上使用 Firebase 作为后端构建。应用程序的 CRUD 部分工作正常,我使用标准的广泛开放的安全规则来确保所有操作都正常工作:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

然后我添加了应用程序的授权部分 - 登录、注册、忘记密码 Vue 组件,然后在 Firebase 中创建了身份验证部分。设置简单的 email/password 身份验证方法。效果很好。我可以注册新帐户,这些帐户已添加到 Firebase 中。创建帐户后,我可以登录并重定向到“安全”主页。

下一个合乎逻辑的步骤是创建安全规则来保护数据,因为一旦发布,我不希望它被公开。我从基本的身份验证规则集开始:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

我想因为这不是什么重要的事情,所以仅从这个基本规则集开始就可以让我测试是否有任何登录用户能够访问我在 Firebase 中创建的数据库。我将安全规则更改为上面的那个。我假设如果我在没有登录的情况下访问该页面,当我试图检索数据库项目列表时会收到错误消息——这确实发生了。我收到有关访问权限不足的错误。然后我尝试使用保存在 Firebase 用户授权列表中的用户登录,然后再次尝试访问数据库列表页面。

不行,同样出现访问权限不足的错误。

我只为一个用户更改了安全规则:

service cloud.firestore {
  match /databases/{database}/documents {
    // Allow only authenticated content owners access
    match /properties/{userId}/{documents=**} {
      allow read, write: if request.auth != null && request.auth.uid == userId
    }
  }
} 

属性是集合的位置,然后我应该在 {userId} 字段中输入实际的 UUID 吗?我试着保持原样,然后放入实际的 UUID,但似乎都不起作用。

我知道我在安全规则中遗漏了一些东西,因为我的登录和注册组件正在工作,所以我很确定它在 Firebase 方面。

任何关于更正安全规则的想法都将不胜感激。

尝试更改以下行:

allow read, write: if request.auth.uid != null;