gpt4 book ai didi

android - 如何从 firebase 存储中获取图像可下载 url 并存储在 firebase 数据库中?

转载 作者:行者123 更新时间:2023-11-30 00:30:39 24 4
gpt4 key购买 nike

我将用户个人资料图片存储在 Firebase 存储中。我想获取这些个人资料图片的可下载 URL,并将每个用户的个人资料图片 URL 存储在他/她在 firebase 数据库中的用户 ID 下。这是我将图片存储在 firebase 存储中的代码。但我不知道如何获取 URL 并将其存储在相应用户 ID 下的数据库中。我还附上了我的 firebase 数据库的快照。 Firebase database image

protected void onActivityResult(int requestCode, int resultCode, Intent 
data) {
super.onActivityResult(requestCode, resultCode, data);


if(requestCode == GALLERY_INTENT && resultCode == RESULT_OK)
{
progressDialog.setMessage("Uploading...");
progressDialog.show();
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
String userID = user.getUid();
Uri uri = data.getData();
ivProfilePicture.setImageURI(uri);

StorageReference filepath =
storageReference.child("Photos").child(userID);

filepath.putFile(uri).addOnSuccessListener(new
OnSuccessListener<UploadTask.TaskSnapshot>() {
@Override
public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
Toast.makeText(EditProfile.this,"Upload
Done",Toast.LENGTH_SHORT).show();

progressDialog.dismiss();

}
});

最佳答案

1> 为一些信息创建 map ...

    FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();

String email = user.getEmail();
String name = user.getDisplayName();
String userName = "USER_NAME"; // set userName here...
String id = user.getUid();

Map<String,String> imageInfo = new HashMap<>();
imageInfo.put("email", email);
imageInfo.put("id", id);
imageInfo.put("name", name);
imageInfo.put("userName", userName);

2>上传文件后,将信息添加到数据库..

    // inside OnSuccessListener

DatabaseReference db = FirebaseDatabase.getInstance().getReference("Users");
db.push().setValue(imageInfo);

// this will add all information to your database...

3> 正在下载带有文件名的图片...

使用数据库查询从数据库中获取文件名...并使用这些代码下载图像并设置为任何 imageView...

    try {
final File tmpFile = File.createTempFile("img", "png");
StorageReference reference = FirebaseStorage.getInstance().getReference("Photos");

// "id" is name of the image file....

reference.child(id).getFile(tmpFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() {
@Override
public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) {

Bitmap image = BitmapFactory.decodeFile(tmpFile.getAbsolutePath());

userImageView.setImageBitmap(image);

}
});
} catch (Exception e) {
e.printStackTrace();
}

关于android - 如何从 firebase 存储中获取图像可下载 url 并存储在 firebase 数据库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44461515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com