Как установить данные моментального снимка Firebase в массив в sessionStorage - PullRequest
0 голосов
/ 27 февраля 2020
var db1 = firebase.firestore();//API firestore database
var docRef1 = db1.collection("SuccessTransaction");
var showSeat = docRef1.get().then(function(snapshot){
    snapshot.forEach(function(doc){
    if(doc.exists){
            alert(doc.data().Seat);
            sessionStorage.setItem("routeUnavailableSeat", JSON.stringify(doc.data().Seat));

        }else{
            alert("No such documet!");
        }
});
}).catch(function(error){
    alert("Error getting document!", error);
});

У меня была проблема с такой ситуацией. Моим намерением было установить значение моего снимка и установить его в sessionStorage. Проблема в том, что после запуска системы она заменит старые данные и заменит новые. Как я могу использовать массив или другой метод, чтобы сохранить все мои данные в sessionStorage?

1 Ответ

0 голосов
/ 27 февраля 2020

API локального хранилища (на котором основано хранилище сеансов) может хранить только строковые значения. Таким образом, чтобы сохранить ваши значения в виде массива, вам необходимо закодировать массив в виде строки.

Кроме этого, необходимо получить текущее значение, проанализировать его и затем добавить обратно в хранилище сеанса. :

if(doc.exists){
  let value = sessionStorage.getItem("routeUnavailableSeat");
  let seats = current ? JSON.parse(current) : [];
  seats.push(doc.data().Seat)
  sessionStorage.setItem("routeUnavailableSeat", seats);
}
...