दस्तावेज़ीकरण को पढ़ते हुए, मुझे एक अनुभाग मिला जिसमें फ़ाइलों को अपलोड करने और उसका डाउनलोड लिंक प्राप्त करने के बारे में बात की गई थी। डाउनलोड लिंक पाने के लिए कोड है:

कोटलिन

val ref = storageRef.child("images/mountains.jpg")
uploadTask = ref.putFile(file)

val urlTask = uploadTask.continueWithTask { task ->
    if (!task.isSuccessful) {
        task.exception?.let {
            throw it
        }
    }
    ref.downloadUrl
}.addOnCompleteListener { task ->
    if (task.isSuccessful) {
        val downloadUri = task.result
    } else {
        // Handle failures
        // ...
    }
}

जावा

final StorageReference ref = storageRef.child("images/mountains.jpg");
uploadTask = ref.putFile(file);

Task<Uri> urlTask = uploadTask.continueWithTask(new Continuation<UploadTask.TaskSnapshot, Task<Uri>>() {
    @Override
    public Task<Uri> then(@NonNull Task<UploadTask.TaskSnapshot> task) throws Exception {
        if (!task.isSuccessful()) {
            throw task.getException();
        }

        // Continue with the task to get the download URL
        return ref.getDownloadUrl();
    }
}).addOnCompleteListener(new OnCompleteListener<Uri>() {
    @Override
    public void onComplete(@NonNull Task<Uri> task) {
        if (task.isSuccessful()) {
            Uri downloadUri = task.getResult();
        } else {
            // Handle failures
            // ...
        }
    }
});

लेकिन मुझे डाउनलोड यूआरएल किस लाइन से मिलता है? क्या यह "वापसी ref.getDownloadUrl();"/"ref.downloadUrl" है? या "Uri downloadUri = task.getResult();"/"val downloadUri = task.result"?

0
Emilio Sanches 15 मार्च 2020, 05:26

1 उत्तर

सबसे बढ़िया उत्तर

दोनों ही मामलों में, downloadUri नाम का वेरिएबल अंतिम डाउनलोड URL है। आप चाहें तो इसे downloadUri.toString() के साथ एक सादे पुराने तार में बदल सकते हैं।

यह ref.getDownloadUrl() का रिटर्न वैल्यू नहीं है। यह एक बहुत ही सामान्य गलती है। getDownloadUrl() एसिंक्रोनस है और यूआरएल को तुरंत वापस नहीं करता है। इसलिए आपको कॉलबैक की आवश्यकता है।

यह भी देखें: Firebase Storage getDownloadURL से URL कैसे प्राप्त करें

1
Doug Stevenson 15 मार्च 2020, 05:29