Эмулятор хранилища Firebase для Android: неверный URL-адрес загрузки

# #android #firebase-storage #firebase-tools

Вопрос:

При использовании эмулятора хранилища на Android:

 FirebaseStorage.getInstance().apply {
    useEmulator("10.0.2.2", 9199)
}
 

Из документов: 10.0.2.2-это специальный IP-адрес для подключения к «локальному хосту» хост-компьютера с помощью эмулятора Android.

И загрузить файл, а затем получить его URL-адрес для загрузки:

 private fun getReference() = database.collection(COLLECTION_REPORTS)

private fun getStorageReference() = storage.reference
        .child(COLLECTION_REPORTS)

suspend fun save(item: Report, image: Uri) = withContext(defaultDispatcher) {
        val docRef = getReference().document()
        val imageRef = getStorageReference()
            .child(docRef.id)
            .putFile(image)
            .await()
        val imageUrl = imageRef.storage.downloadUrl.await().toString()

        docRef.set(item.apply { photoUrl = imageUrl })
            .await()
    }
 

Он вернет URL-адрес загрузки, используя специальный IP-адрес ( 10.0.2.2 ) вместо localhost

http://10.0.2.2:9199/v0/b/project.appspot.com/o/reports/bn8A9YQ9plGUUGMZjX9i?alt=mediaamp;token=cfefb3f9-0c7c-4094-ab98-a8fd62fc233b

Этот URL-адрес недействителен, так как я не могу получить доступ к изображению ни через эмулятор Android, ни через браузер ПК напрямую.

Но это сработает, если я 10.0.2.2 заменю localhost в URL-адресе на.

http://localhost:9199/...rest of the url

Я не знаю, ошибка это или нет, есть ли какое-нибудь решение для этого?