#android #firebase #firebase-storage
#Android #firebase #firebase-хранилище
Вопрос:
В моем приложении для Android мне нужно сохранить несколько файлов в облачном хранилище Firebase. Загрузка должна быть завершена, прежде чем я смогу сохранить полный объект в базе данных (файлы являются лишь частью полного объекта, и я сохраняю URL-адрес загрузки для каждого файла в полном объекте).
Если я хочу использовать WorkManager для этой задачи, как я могу сначала загрузить все файлы, а затем загрузить полный объект в его базу данных? Есть ли способ загрузить все файлы в виде пакетной загрузки вместо того, чтобы помещать все это в цикл? Каков наилучший способ узнать, когда все загрузки завершены?
Комментарии:
1. Вы имеете в виду облачное хранилище вместо Firestore? Firestore — это база данных, а облачное хранилище предназначено для общей загрузки файлов.
2. Вы правы, я имел в виду облачное хранилище Firebase.
Ответ №1:
В клиентском SDK нет операций загрузки пакетных файлов. Вам нужно будет использовать объекты задач, возвращаемые каждой отдельной загрузкой, чтобы определить, когда все они будут завершены. Возможно, вам будет полезно использовать <a rel="noreferrer noopener nofollow" href="https://developers.google.com/android/reference/com/google/android/gms/tasks/Tasks#whenAll(com.google.android.gms.tasks.Task…)» rel=»nofollow noreferrer»>Tasks .WhenAll() из API задач, чтобы настроить обратный вызов для выполнения нескольких задач.
Комментарии:
1. Вы имеете в виду: val tasks = mutableListOf<UploadTask>() val uploadTask = ref.PutFile(…) tasks.add(uploadTask) и выполните это в цикле, затем, после завершения цикла, напишите: val finishTask = Tasks . Когда все (задачи) завершатьtask.addOnCompleteListener { … } ?
2. Я постараюсь, спасибо!