Облачный Firestore не всегда работает - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть код ниже, и хотя console.log всегда печатает правильный logText, logText не всегда записывается в Cloud Firestore. Для тестового режима я запускаю руководство по функциям каждые 3-4 се c и не работает. В режиме выпуска функция будет работать еще быстрее ....

// Update History Log
function updateHistoryLog(logText) {

  var game = getgameCookies();
  var db = firebase.firestore();
  var cards = game.substring(0, game.length - 9) + 'cards'

 console.log(logText)

   var logStatus = db.collection(cards).doc('changes');
  logStatus.update({
    logline: firebase.firestore.FieldValue.arrayUnion(logText)
  });

}
// Print Historylog in screen
function historyLog() {
  var player = getplayerCookies();
  var game = getgameCookies();
  var db = firebase.firestore();
  var cards = game.substring(0, game.length - 9) + 'cards'
  var logStatus = db.collection(cards).doc('changes');
  var thisChange
  var toWrite = document.getElementById('historyLog')

  logStatus.onSnapshot(function aChange(doc) {
        toWrite.innerHTML = ""
        logStatus.get().then((snapshot) => {
            if (doc.exists) {
              thisChange = doc.data().logline
            }
          }).then(function() {
              thisChange.reverse();
              let i
              for (i = 0; i < thisChange.length; i++) {
                let text = thisChange[i]

                toWrite.innerHTML += '<p>' + text + '</p>'
              }
    })
  })
}

Я думаю, проблема в том, что первый скрипт пытается «вставить» новый массив, второй получает «второй» "предыдущий массив (который больше). Любая помощь будет оценена! Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...