Обновить собственный пользовательский интерфейс реакции (expo) при возникновении события Firebase

В моем приложении одно устройство сканирует QR-код на другом устройстве. Когда код сканируется, я уведомляю Firebase, и она обновляет базу данных. Затем мне нужно запустить какое-то событие на отсканированном телефоне, чтобы пользователь увидел, что его QR-код был отсканирован. Возможно перенаправление на экран успеха.

Как этого добиться с помощью Expo, Firebase и, возможно, Apollo Server?

Это делается через связку экспо-уведомлений? Это сделано с помощью сообщений данных Firebase? Есть другой способ?


person Ben    schedule 12.09.2020    source источник


Ответы (1)


Если приложение отсканированного устройства открыто, вы можете просто присоединить слушателя к базе данных, где вы храните отсканированные / отсканированные данные при открытии QR-кода.

Таким образом, вы получите новый снимок после обновления записи в базе данных.

const qrCodeReference = firebase.database().ref('qrcodes/' + codeId+ '/gotScanned');
qrCodeReference.on('value', function(snapshot) {
    // get the gotScanned value with snapshot.val();
});

Это всего лишь базовый пример, и вы должны настроить его в зависимости от структуры вашей базы данных и того, какие свойства вам нужны, чтобы убедиться, что код был успешно просканирован.

Подробнее о возможностях можно прочитать здесь, https://firebase.google.com/docs/database/web/read-and-write

person Badgy    schedule 12.09.2020
comment
Действительно. Я смотрел это руководство сразу после публикации вопроса: youtube.com/watch?v=E81jfHan8MM Он показывает пример прослушивания изменений базы данных с помощью приложения чата. Я понятия не имел, что вы можете слушать изменения БД. Это действительно здорово :) - person Ben; 12.09.2020