拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 FirestorePERMISSION_DENIED

FirestorePERMISSION_DENIED

白鹭 - 2022-02-22 2142 0 0

当我撰写我的颤振应用程序时,我在 macOs 上遇到了这个问题,相同的基本代码在我的 windows pc 中作业,但在 macOs 中它不起作用。正如您在我的日志中看到的,应用程序已连接,但我仍然无法在我的 Firestore 数据库上发出请求

我改变了规则

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

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

但我有同样的错误。

D/FirebaseAuth(11790): Notifying id token listeners about user ( tNGS8j375AYehEPDhZADPP80zLY2 ).
W/DynamiteModule(11790): Local module descriptor class for providerinstaller not found.
I/DynamiteModule(11790): Considering local module providerinstaller:0 and remote module providerinstaller:0
W/ProviderInstaller(11790): Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0.
W/Firestore(11790): (24.0.0) [Firestore]: Listen for Query(target=Query(usersProDEV where uuid == tNGS8j375AYehEPDhZADPP80zLY2 order by __name__);limitType=LIMIT_TO_FIRST) failed: Status{code=PERMISSION_DENIED, description=Missing or insufficient permissions., cause=null}
E/flutter (11790): [ERROR:flutter/lib/ui/ui_dart_state.cc(209)] Unhandled Exception: [cloud_firestore/permission-denied] The caller does not have permission to execute the specified operation.

相同的代码在我的 Windows PC 中作业

uj5u.com热心网友回复:

在里面projectFolder/android/app/src/main/AndroidManifest.xml添加以下内容:

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

uj5u.com热心网友回复:

根据这篇文章,您的应用程序访问互联网时出现错误。请检查您的网络连接:

第 1 版:

您能否尝试本档案中的示例代码进行身份验证:

  service cloud.firestore {
      match /databases/{database}/documents {
        match /messages/{document=**} {
          allow read, update, delete: if request.auth.uid == resource.data.uid;
          allow create: if request.auth.uid != null;
        }
      }
    }

此代码必须仅适用于读取而不是写入:

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

uj5u.com热心网友回复:

几次之后,我意识到问题不仅在 MacOs 下,而且在模拟器上。通过进一步挖掘,我意识到我在项目上激活的 AppCheck 不接受模拟器下除错模式的所有请求。

标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *