【发布时间】:2021-06-28 10:06:02
【问题描述】:
您好,我想使用 android studio 在 firebase 存储上添加图像,但 firebase 不接受我的上传。我更改了规则以允许写入和读取,并且我的匹配文件夹允许所有路径。因此我很困惑。这是我的代码中应该将图像放入我的数据库的部分。 如果您知道如何解决此问题,我很乐意听到解决方案
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK && requestCode == PICK_IMAGE){
image_uri = data.getData();
uploadPicture();
ProfileImage.setImageURI(image_uri);
}
}
private void uploadPicture() {
final ProgressDialog pd = new ProgressDialog(this);
pd.setTitle("Uploading Image...");
pd.show();
final String randomKey = UUID.randomUUID().toString();
StorageReference riversRef = storageReference.child(("images/" + randomKey + ".jpg"));
Toast.makeText(Create_Profile.this, "Upload success", Toast.LENGTH_SHORT).show();
riversRef.putFile(image_uri)
.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
pd.dismiss();
name = riversRef.getDownloadUrl().toString();
}
}).addOnProgressListener(new OnProgressListener<UploadTask.TaskSnapshot>() {
@Override
public void onProgress(@NonNull UploadTask.TaskSnapshot snapshot) {
double progressPercent = (100.00 * snapshot.getBytesTransferred() / snapshot.getTotalByteCount());
pd.setMessage("Percentage: " + (int) progressPercent + "%");
}
});
}
【问题讨论】:
-
您能否使用从 logcat 获得的输出更新您的回答者?如果您添加
image_uri和storageReference的来源将非常有帮助。 -
这段代码中到底有什么不符合您的预期?告诉我们共享代码有什么问题。你有什么错误吗?请回复@AlexMamo
-
@AlexMamo 代码工作得很好,但它是 firebase 的一个问题。我更新了我的规则,但是当我查看 firebase 统计数据时,firebase 仍然拒绝我上传图片我可以看到所有我的请求被拒绝了,我不知道为什么
-
您能告诉我们您使用的规则吗?
标签: java android firebase firebase-storage