#flutter
Вопрос:
Я пытаюсь получить некоторые данные из вызова API и выполнить некоторую задачу на основе полученных данных. Допустим, у меня открыто приложение flutter, и в этом открытом состоянии без какого-либо щелчка или какого-либо взаимодействия я получаю некоторые данные или выполняю какие-либо функции, когда отправляю что-либо через API.
Я использовал Firebase FCM для выполнения такой задачи — когда я отправляю что-то через API, уведомление firebase фиксирует эти данные и выполняет нужные мне задачи в приложении flutter.
Но я хочу обойтись без Огневой базы. Как я могу это сделать? Любое решение/предложения было бы здорово. Спасибо!
Комментарии:
1. используйте websocket для двусторонней связи. таким образом, вы сможете отправлять сообщения с сервера клиенту, и клиент сможет действовать соответственно, без взаимодействия с пользователем.
2. Вы можете использовать StreamBuilder для прослушивания изменений в базе данных Firebase.
Ответ №1:
Ваш вопрос немного неясен. Независимо от того, хотите ли вы выполнить какой-либо сетевой вызов даже без какого-либо взаимодействия с пользователем, вы можете вызвать сеть в своем методе OnInit. Этот метод выполняется в самом начале для отдельного экрана. Затем выполните свою задачу, основываясь на ответе
Ответ №2:
Для этого вам нужен потоковый API,изучите программирование сокетов
Ответ №3:
Для этого вы можете использовать сетчатый разъем или толкатель. Когда веб-сокет подключен к вашему серверу, в это время вы получили некоторые данные и можете выполнять свою задачу.
Ответ №4:
Для начала давайте отложим Флаттера в сторону. Ваша проблема состоит в том, чтобы извлечь данные из API и выполнить определенную задачу, или ваш API должен уведомить приложение через API.
Для первой проблемы должен сработать простой опрос данных: когда приложение открыто, вы просто запускаете какой-то таймер и периодически извлекаете данные из API и что-то делаете. Однако этот метод не идеален, он разряжает батарею, и в целом, есть лучшие способы добиться того же самого, например, с помощью сокетов или push-уведомлений (как уже указано в некоторых ответах).
Для вашей второй проблемы — «или выполняйте любую функцию, когда я отправляю что — то через API» — вам нужен какой-то механизм, чтобы уведомлять ваше приложение, чтобы оно реагировало и обрабатывало данные. С этой проблемой можно было бы справиться с помощью того же механизма, что и с первой проблемой.
Поэтому, вероятно, вам нужно использовать какую-либо службу push-уведомлений (например, OneSignal или Pusher или любую другую аналогичную службу) или веб-сокеты (https://flutter.dev/docs/cookbook/networking/web-sockets).