Я загружаю изображение в Firebase Storage, а затем мне нужно добавить URL изображения в виде текста в базу данных Firebase - PullRequest
0 голосов
/ 19 сентября 2019

У меня есть класс модели, его имя (Рестораны). Я хочу добавить информацию о ресторанах, такую ​​как адрес и имя, с изображением для ресторанов и загрузить изображение в хранилище 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();
        }

    }

1 Ответ

0 голосов
/ 20 сентября 2019

Как только загрузка завершена, в onSuccess вы должны получить URL-адрес загрузки из 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.

dbRef.child("Res_imageURL").setValue(uri.toString())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...