java - 我正在将图像上传到 Firebase Storage,然后需要将图像 URL 作为文本添加到 Firebase 数据库中

标签 java android firebase-realtime-database

我有一个模型类,其名称为(餐厅),我想添加餐厅详细信息,例如地址和名称以及餐厅图像,并将图像上传到 Firebase 存储中,将详细信息上传到 Firebase 数据库中,然后我需要将图像 URL 作为文本添加到 Firebase 数据库中

 String Res_Name = txtAddResName.getText().toString();
                String Res_Address = txtResAddress.getText().toString();
                String Res_TimeOpne = txtOpenTime.getText().toString();
                String Res_CloseTime = closeTime.getText().toString();
                String Res_imageURL = "" ;//i need to get image URL here

//这里我上传图片

public void uploadImg() {
        if (filePath != null) {
            pd.show();

            //for random name image
            StorageReference childRef = storageRef.child(System.currentTimeMillis() + "_mas.jpg");

            //uploading the image
            UploadTask uploadTask = childRef.putFile(filePath);

            uploadTask.addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() {
                @Override
                public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) {
                    pd.dismiss();
                    Toast.makeText(getApplicationContext(), "Upload successful", Toast.LENGTH_SHORT).show();
                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    pd.dismiss();
                    Toast.makeText(getApplicationContext(), "Upload Failed -> " + e, Toast.LENGTH_SHORT).show();
                }
            });
        } else {
            Toast.makeText(getApplicationContext(), "Select an image", Toast.LENGTH_SHORT).show();
        }

    }

最佳答案

上传完成后,在 onSuccess 中,您必须像这样从 Firebase Storage 获取下载网址

childRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
    @Override
    public void onSuccess(Uri uri) {
        // Got the download uri
    }
}).addOnFailureListener(new OnFailureListener() {
    @Override
    public void onFailure(@NonNull Exception exception) {
        // Handle any errors
    }
});

获得下载 uri 后,您可以简单地更新 Res_imageURL,就像在下载 uri 任务的 onSuccess 中一样。

dbRef.child("Res_imageURL").setValue(uri.toString())

关于java - 我正在将图像上传到 Firebase Storage,然后需要将图像 URL 作为文本添加到 Firebase 数据库中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58006354/

相关文章:

Java JSTL - 如何避免我的代码片段出现 ParseException?

java - 尝试在 Spring + MySQL 中创建表之间的关系时出错

Android:在 Adapter 的 onBindViewHolder 中将 ImageView 动态添加到 Linearlayout

java - 如何检查数据库的分支中是否存在子项,以便我可以根据该子项返回值

swift - storageRef.downloadURL 没有在里面执行代码

java - SQLNonTransientException 的可能解决方案

java - 在 Tomcat 中部署 war

android - RecyclerView 滚动位置

java - 您可以在 Android Studio 中更改布局资源的背景颜色吗?

Google Apps 脚本上的 Firebase 数据库 secret