【发布时间】:2021-12-30 21:57:56
【问题描述】:
我有这样的错误:
java.io.IOException: { "error": { "code": 400, "message": "Permission denied。请通过访问 Firebase 控制台中的存储选项卡为您的存储桶启用 Firebase 存储,并确保您拥有足够的权限来正确配置资源。” }}
但是,我这里的存储规则:
service firebase.storage {
match /b/luu-hinh-voi-firebase.appspot.com/o {
match /{allPaths=**} {
allow read, write;
}
}
}
我认为我的代码是正确的,但错误仍然出现,这是我的代码:
Calendar calendar=Calendar.getInstance();
StorageReference mountainsRef = storageRef.child("image"+calendar.getTimeInMillis()+".png");
// Get the data from an ImageView as bytes
imgHinh.setDrawingCacheEnabled(true);
imgHinh.buildDrawingCache();
Bitmap bitmap = ((BitmapDrawable) imgHinh.getDrawable()).getBitmap();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] data = baos.toByteArray();
UploadTask uploadTask = mountainsRef.putBytes(data);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Toast.makeText(MainActivity.this, "Failed !", Toast.LENGTH_SHORT).show();
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Log.d("hivu", taskSnapshot.getUploadSessionUri()+"");
Toast.makeText(MainActivity.this, "Success !", Toast.LENGTH_SHORT).show();
}
});
请帮我解决这个问题,我不知道错误来自哪里?
【问题讨论】:
-
我不久前链接了一个解决方案。如果这不能为您解决问题,您能否reach out to Firebase support 获得个性化的故障排除帮助?
-
我已经尝试过您的解决方案,但它根本不起作用
-
很抱歉听到@QuốcVũ。在这种情况下,请联系 Firebase 支持,以便他们查看。我们最近看到了一些类似的案例,解决方法是使用另一个 (gmail) 帐户。但这当然不应该是正确的解决方案,所以希望我们的支持团队能找到这个问题的根本原因。
-
我将联系 Firebase 支持人员,了解导致此错误的根本原因。顺便说一句,谢谢你的帮助
-
firebaser here 如果这是您在过去几天创建的项目,您可能受到我们项目创建中的错误的影响。如果是这样,则该问题已得到解决,因此新项目将不再受到影响。要修复您现有的项目,请查看此处的步骤:stackoverflow.com/a/70060240
标签: android firebase-storage firebase-security