- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在将图片上传到 Firebase 时遇到问题。
当我上传图像时,我得到一个 taskSnapshot.getDownloadUrl() token ,当我查看 firebase 存储时,有一个不同的 token key 。我无法弄清楚我的问题出在哪里,也不是每次我都收到错误(大约 30% 的时间)。
希望你能帮助我。
我的上传方式:
public void uploadImage(Context context, Activity activity) {
String authorities = activity.getPackageName() + ".fileprovider";
File f = new File(MainActivity.imagesPath + String.valueOf(uploadToiletId) + "_" + uploadTimeStamp + ".png");
Log.i("HANDLERTAG", "file: " + f.getPath());
Uri imageUri = FileProvider.getUriForFile(context, authorities, f);
Log.i("HANDLERTAG", "image: " + imageUri.getPath());
Bitmap bitmap;
ByteArrayOutputStream baos;
final DatabaseReference databaseRef = FirebaseDatabase.getInstance().getReference();
final StorageReference storageRef = FirebaseStorage.getInstance().getReference();
final FirebaseAuth mAuth = FirebaseAuth.getInstance();
try {
bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), imageUri);
Bitmap resized = Bitmap.createScaledBitmap(bitmap, bitmap.getWidth() / 4, bitmap.getHeight()/ 4, true);
baos = new ByteArrayOutputStream();
resized.compress(Bitmap.CompressFormat.PNG, 50, baos);
byte[] dataBAOS = baos.toByteArray();
final String timeStamp = FormatHelper.getCurrentDateTimeString("dd-MM-yy HH:mm:ss");
StorageReference imagesRef = storageRef.child(String.valueOf(uploadToiletId)).child(timeStamp + ".png");
imagesRef.putBytes(dataBAOS).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Log.i("CAMERATAG", "Billede uploadet");
Uri downloadUrl = taskSnapshot.getDownloadUrl();
Log.i("DOWNLOAD_URL",String.valueOf(downloadUrl));
HashMap<String, String> UploadImageMap = new HashMap<>();
UploadImageMap.put("Url", downloadUrl.toString());
UploadImageMap.put("UserId", mAuth.getCurrentUser().getUid());
databaseRef.child(DB_TABLE_TOILETS)
.child(String.valueOf(uploadToiletId))
.child("Images")
.child(timeStamp).setValue(UploadImageMap);
databaseRef.child(DB_TABLE_USERS)
.child(mAuth.getCurrentUser().getUid())
.child("Images")
.child(String.valueOf(uploadToiletId))
.child(timeStamp).setValue(UploadImageMap);
}
});
imagesRef.putBytes(dataBAOS).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
Log.i("CAMERATAG", e.getLocalizedMessage());
Log.i("CAMERATAG", "Noget gik galt med billede");
}
});
Toast.makeText(context, "Upload complete", Toast.LENGTH_SHORT).show();
} catch (IOException e) {
Log.i("HANDLERTAG", e.getMessage());
e.printStackTrace();
}
}
Debug shows token key from my app in android studio
token key :token=b23e8ab1-8322-46cf-889e-4f276fb2c242
来自 firebase 的 token key :token=e5b84bed-7226-4af3-b01b-e31cf03e7d8b
最佳答案
您是否尝试过将存储设置为 read true?
service firebase.storage {
match /b/{bucket}/o {
match /{allPaths=**} {
allow read;
allow write: if request.auth != null;
}
}
}
这样用户无需登录即可阅读,但必须登录才能实际写入您的存储。
关于Android Tasksnapshot getDownloadUrl() 不同的 token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45974932/
Uri downloaduri=taskSnapshot.getDownloadUrl();//here i cant use getdownloadurl() function
我想知道是否 getDownloadUrl在 Firebase 存储/谷歌云存储(一种获取存储上文件的公共(public) URL 的方法)上是一项付费操作。即使在通读之后 the documenta
为了在Cloud Firestore中创建配置文件信息,我尝试使用 NonExistingProfileForm 。 照片是从画廊中选择的,并上传到了Firebase存储中,但我似乎无法获取它的URL
我有一个函数,首先将图像保存到 Firebase,然后返回下载网址。现在我可以取回url(请参阅return url),但我不知道如何为整个函数返回它,因为它是嵌套,并且由于此函数异步运行,如果在 g
我尝试将图像上传到 Firebase 存储,然后从存储中获取下载网址,以便将其保存到我的数据库中。 注释掉的行有效,所以我知道它是“getDownloadURL”函数或我的存储引用中的问题。我有一个类
我正在将 pdf 上传到 Firebase Storage,并希望获取其下载网址。我正在使用以下代码: @Override protected void onActivityResult(int re
这个问题已经有答案了: How to get URL from Firebase Storage getDownloadURL (14 个回答) 已关闭 4 年前。 我正在尝试遵循有关“如何制作 Wh
通话时 task.getResult().getDownloadUrl().toString(); 我在 getDownloadUrl() 上遇到错误,不知道为什么?显示红线并且无法解析符号 if (
private void uploadImageToFirebaseStorage() { StorageReference profileImageRef = Firebas
这个问题在这里已经有了答案: How to return DataSnapshot value as a result of a method? (6 个答案) 关闭 4 年前。 此方法应该返回 d
到目前为止,从 Firebase 中的存储文件中获取 url 的方法,我曾经这样做过taskSnapshot.getDownloadUrl,但现在已弃用,我应该使用哪种方法? 最佳答案 正如 Doug
private void uploadImageToFirebaseStorage() { StorageReference profileImageRef = Firebas
要将图像上传到Firebase Storage,我将addOnSuccessListener附加到StorageReference的实例上。在覆盖 onSuccess 方法时,我在 taskSnaps
我正在尝试使用新的@angular/fire 5.1.0使用 AngularFireStorage 查看上传到 firebase 的图像。我曾经能够在 angularfire2 中使用 task.do
你能帮我解决这个错误吗? getDownloadUrl();说无法解析 getDownloadUrl() 的符号变量。我知道 getDownloadUrl(); 已被弃用,我尝试阅读更新后的文档,但我
private void storeFirestore(@NonNull Task task, String user_name) { Uri download_uri; if(tas
我在将图片上传到 Firebase 时遇到问题。 当我上传图像时,我得到一个 taskSnapshot.getDownloadUrl() token ,当我查看 firebase 存储时,有一个不同的
根据我读过的文档 ref.getDownloadURL(); 应该返回一个我可以在 img src 中使用的链接。 这是我的代码:这就是我启动 firebase 的方式: this.storage =
let storage = firebase.storage(); let storageRef = storage.ref("EnglishVideos/" + movieTitle + "/" +
真的需要帮助,这是我的 Firebase 存储安全规则 service firebase.storage { match /b/shoppinglist-XXXX.appspot.com/o {
我是一名优秀的程序员,十分优秀!