#ios #swift #firebase #file-upload
#iOS #swift #firebase #загрузка файла
Вопрос:
Я использовал тип Firebase StorageUploadTask для отслеживания хода загрузки в хранилище. Однако мне было интересно, каким наилучшим способом было бы отслеживать ход загрузки с нескольких устройств, скажем, например, если я загружаю что-то со своего ноутбука в Firebase и хочу иметь возможность видеть ход загрузки со своего телефона. Есть ли способ передать StorageUploadTask через Firebase или загрузить StorageUploadTask по URL или id? Спасибо!
В идеале я мог бы сделать что-то вроде:
Из настольного приложения:
let uploadTask = storageRef.putFile(from: path)
Из мобильного приложения
(связано с одной и той же базой данных Firebase)
let uploadTask = Firebase.getUploadTask(fromRef: storageRef)
uploadTask.observe(.progress) { ... }
Комментарии:
1. Я не совсем понимаю, чего вы пытаетесь достичь.
2. Я хотел бы знать, есть ли способ передать StorageUploadTask через Firebase, чтобы я мог отслеживать ход загрузки с нескольких устройств. @DougStevenson
3. Я не уверен, что вы подразумеваете под «переходом на Firebase». Я думаю, было бы полезно, если бы вы отредактировали вопрос, чтобы более подробно объяснить, в чем заключается ваш конкретный случай, и что ваша реализация должна сделать в конце дня.
4. Я добавил пример того, как может выглядеть функция, которую я ищу. Мне просто любопытно, существует ли что-то похожее на эту функциональность. @DougStevenson
5. Если вы спрашиваете, могут ли несколько устройств отслеживать ход выполнения загрузки? Конечно. Но почему? И код в вопросе не будет работать для этого варианта использования (на других устройствах), локальному устройству необходимо будет отслеживать прогресс и записывать данные на узел Firebase по мере выполнения задачи. Другим устройствам потребуется наблюдатель на этом узле, чтобы они получали события.
Ответ №1:
Невозможно просто «пропустить» задачу загрузки для совместного использования между клиентами. Лучше всего иметь локального слушателя для каждой задачи с кодом для обновления некоторого общего местоположения (возможно, узла базы данных в реальном времени или документа Firestore) с ходом каждой передачи. Затем обновления могут прослушиваться каждым клиентом, который знает местоположение обновлений.
Комментарии:
1. Хорошо, спасибо, Даг. Это то, что, как я понял, будет ответом на этот вопрос; спасибо за помощь!