无权访问此对象错误

时间:2016-07-11 12:47:01

标签: android firebase firebase-storage

我正在尝试使用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" />

5 个答案:

答案 0 :(得分:2)

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

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

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

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

同样Secure User Data以获得更多想法。

我希望它会帮助你。

答案 1 :(得分:1)

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

答案 2 :(得分:1)

如果您的项目需要其他权限,请不要将targetSdk设置为高于22的项目来构建项目,因为您必须支持Runtime Permissions。作为一种快速解决方案,将targetSdk更改为22,清理并重建您的项目,您就可以了。

答案 3 :(得分:0)

1.转到firebase控制台

2.转到您的应用

3.单击左侧的身份验证按钮

4.单击登录方法选项卡

5.将鼠标悬停在列表

下面的匿名项目上

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

7.单击启用,然后保存

这应该有效

答案 4 :(得分:0)

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