1

我在我的 Angular 应用程序中使用angularfire与 firestore 进行交互。不幸的是,在我在 firebase 控制台中设置应用程序检查后,我ERROR FirebaseError: Missing or insufficient permissions.在第一次与 firestore 交互后进入了我的 webbrowser 的控制台(请参阅下面的组件),这里有一些对您有用的信息,我从我的票中复制了这些信息角火回购。

版本信息

角度:

@angular-devkit/architect 0.1200.5 @angular-devkit/build-angular 12.2.13 @angular-devkit/core 12.2.13 @angular-devkit/schematics 12.2.13 @schematics/angular 12.2.13 rxjs 6.6.7 打字稿4.3.5

火力基地:

9.19.0

角火:

7.2.0

其他(例如 Ionic/Cordova、Node、浏览器、操作系统):

节点:16.13.0

如何重现这些条件

在我的组件中:

constructor(
    private firestore: AngularFirestore,
  ) {}

  ngOnInit(): void {
this.firestore
        .collection('users')
        .snapshotChanges()
        .subscribe((documents) => {
          this.userDocuments = documents;
        })

设置和重现的步骤

我在 firebase 控制台的项目下创建了一个 firebase Web 应用程序。在应用检查选项卡中,我将来自 recaptcha 的站点密码粘贴到必填字段中,因此现在看起来像这样:

截图 2021-11-29 at 17 02 42

在我的 app.module.ts

imports: [
..
    AngularFireModule.initializeApp(environment.firebase),
    // // AppCheckModule,
    provideFirebaseApp(() => initializeApp(environment.firebase)),
    environment.useEmulators
      ? [AppCheckModule]
      : provideAppCheck(() => {
          const provider = new ReCaptchaV3Provider(environment.recaptcha);
          return initializeAppCheck(getApp(), {
            provider,
            isTokenAutoRefreshEnabled: true,
          });
        }),
  ],

在 中enviroment.ts,我从 recaptcha 中设置了密钥。此外,环境生产密钥设置为 true,因此isDevMode()返回 false。存在问题,否则recaptcha 需要调试令牌。

示例数据和安全规则

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

调试输出

ERROR FirebaseError: Missing or insufficient permissions.

有人可以给我一个建议如何在这里进行吗?

4

1 回答 1

0

直到几天前发布的 JS SDK 9.6 才添加 AppCheck for Firestore。它现在为我工作

见这里: https ://firebase.google.com/support/release-notes/js

截屏

于 2021-12-08T11:16:01.010 回答