如何将图像名称从firebase存储复制到firebase数据库?Javascript和Java



我已经可以将图像保存到以当前用户的uid命名的firebase存储中。有没有什么方法可以将图像名称从firebase存储复制到我的firebase数据库?因为我想把上传的图片放在谷歌地图活动的标记里。我将在安卓系统中使用java的谷歌地图活动中以及在网络中使用javascript的谷歌地图中做到这一点。

编辑:是否可以像在firebase数据库中一样在我的firebase存储中进行查询,这样我就可以很容易地获得文件名并将其保存在我的Users/UID/image_found/HERE节点中。

您可以从Firebase storage获取存储链接,但不确定您要问什么。您还可以为图像设置所需的名称。

如果你问如何做到这一点,那么你可以在这段代码中找到所有答案:

private void uploadFile(Bitmap bitmap) {
FirebaseStorage storage = FirebaseStorage.getInstance();
final StorageReference storageRef = storage.getReference();
// this is how you set your desired name for the image
final StorageReference ImagesRef = storageRef.child("images/"+mAu.getCurrentUser().getUid()+".jpg");

ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 20, baos);
byte[] data = baos.toByteArray();
final UploadTask uploadTask = ImagesRef.putBytes(data);
uploadTask.addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception exception) {
Log.i("whatTheFuck:",exception.toString());
}
}).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
@RequiresApi(api = Build.VERSION_CODES.KITKAT)
@Override
public void onSuccess(final UploadTask.TaskSnapshot taskSnapshot) {
// taskSnapshot.getMetadata() contains file metadata such as size, content-type, and download URL.
Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
@Override
public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) {
if (!task.isSuccessful()) {
Log.i("problem", task.getException().toString());
}
return ImagesRef.getDownloadUrl(); 
}
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
@Override
public void onComplete(@NonNull Task<Uri> task) {
if (task.isSuccessful()) {
Uri downloadUri = task.getResult();
DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("users").child(mAu.getCurrentUser().getUid());

Log.i("seeThisUri", downloadUri.toString());// This is the link or name you should use to save or set the image
ref.child("imageURL").setValue(downloadUri.toString());

} else {
Log.i("wentWrong","downloadUri failure");
}
}
});
}
});
}

最新更新