【问题标题】:No permission to access this object error无权访问此对象错误
【发布时间】:2016-07-11 12:47:00
【问题描述】:

我正在尝试使用 firebase 上传文件。该代码在只有内部存储的设备上运行良好,但在尝试使用外部存储(SD 卡)的设备时显示User does not have permission to access this object. Code: -13021 HttpResult: 403 错误。

我的清单文件包含以下权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />

【问题讨论】:

标签: android firebase firebase-storage


【解决方案1】:

存储桶的默认安全规则要求您使用 firebase 身份验证登录。您可以使用任何身份验证方法。您至少必须通过以下方式匿名登录:

您还可以设置规则以允许任何人访问 - 包括尚未通过身份验证的人。 不建议这样做,因为您的数据不安全。

您只需在规则中使用request.auth 而不仅仅是auth

StorageException: StorageException has occurred. User does not have permission to access this object.

也可以Secure User Data 了解更多信息。

希望对你有帮助。

【讨论】:

    【解决方案2】:

    检查build.gradle中的目标SDK版本是否为23,如果是则需要实现运行时权限或将其更改为22

    【讨论】:

      【解决方案3】:

      如果您的项目需要额外的权限,请不要将targetSdk 设置为高于22 的任何值来构建您的项目,因为您必须支持Runtime Permissions。作为一个快速的解决方案,将targetSdk 更改为22,清理并重建您的项目,您会没事的。

      【讨论】:

        【解决方案4】:

        1.转到您的 Firebase 控制台

        2.转到您的应用

        3.点击左侧的认证按钮

        4.点击登录方式标签

        5.将鼠标悬停在列表下方的匿名项上

        6.点击项目右侧的铅笔按钮

        7.点击启用,然后保存

        这应该可以工作

        【讨论】:

          【解决方案5】:

          只需进行身份验证并允许匿名登录方法,您的问题就会完全解决

          【讨论】:

            猜你喜欢
            • 2020-01-30
            • 2019-08-06
            • 1970-01-01
            • 2018-02-09
            • 1970-01-01
            • 1970-01-01
            • 2016-12-04
            • 2020-08-09
            • 1970-01-01
            相关资源
            最近更新 更多