# #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
Я не знаю, ошибка это или нет, есть ли какое-нибудь решение для этого?