Синхронизация в реальном времени с Google Firebase без Node.JS ?

#javascript #firebase #google-cloud-firestore

#javascript #firebase #google-облако-firestore

Вопрос:

Я пытаюсь использовать Google Firebase для синхронизации веб-страницы между клиентами браузера. Это очень простая страница, всего с двумя текстовыми полями:

     <input class="firebase" id="text1">
    <input class="firebase" id="text2">
    <input type="button" value="test" onclick="setData()">
  

Firebase, кажется, все настроено правильно. При нажатии кнопки отправки выполняется следующее:

     function setData()
    {
        docData = [];

        $('.firebase').each(function (index, value)
        {
            docData[$(this).attr('id')] = $(this).val();
        });

        console.log(docData);
        db.collection("test").doc("12345").set(Object.assign({}, docData));
    }
  

Пока это работает отлично, я вижу, как данные обновляются в режиме реального времени на моей консоли Firebase.

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

У меня нет узла.На моем веб-сайте установлен JS, и я даже не знаю, с чего начать его установку.

Могу ли я сделать что-нибудь простое, чтобы синхронизировать эти поля между клиентами?

Ответ №1:

Если вы хотите оперативное обновление, просто используйте onSnapshot метод:

 db.collection("cities").doc("SF")
    .onSnapshot(function(doc) {
        console.log("Current data: ", doc.data());
    });
  

Для получения более подробной информации обратитесь к документации.

Комментарии:

1. Сработало отлично! Спасибо! В документации Google всегда так сложно ориентироваться, что часто бывает трудно что-то найти.

2. Я согласен, рад, что смог помочь. Пожалуйста, также примите ответ, если он решил вашу проблему.