Я сейчас работаю над проектом. Когда я прокручиваю вниз, он получает больше данных из облачного хранилища, как при бесконечной прокрутке.
Это ссылка на мой код на jsfidlle - щелкните здесь
Сначала я инициализирую firebase и получаю первые 5 документов, которые отлично работают.
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
// firebase.analytics();
const db = firebase.firestore();
const ul = document.querySelector("ul");
var i = 1;
var lastVisible;
//getting category blocks
db.collection("chats")
.limit(4)
.get()
.then((snapshot) => {
snapshot.forEach((doc) => {
ul.innerHTML += `<li><h3>${doc.data().message} </h3><p>-Initial data, comes when page loads<br> <br> <br> <br></p></li>`
});
lastVisible = snapshot.docs[snapshot.docs.length - 1]; // stores the last document for startAfter() Method
})
.catch((error) => {
console.log("Error getting documents: ", error);
});
Но когда я получаю следующие документы, когда пользователь прокручивает до конца, это неожиданно получает все данные дважды.
//getting next category blocks
window.onscroll = function (ev) {
if (window.innerHeight + window.scrollY >= document.body.scrollHeight) {
//getting category blocks
db.collection("chats")
.startAfter(lastVisible)
.limit(2)
.get()
.then((snapshot) => {
snapshot.forEach((doc) => {
ul.innerHTML += `<li><h3>${doc.data().message} </h3></li>`
});
lastVisible = snapshot.docs[snapshot.docs.length - 1];
// stores the last document for startAfter() Method in next call
})
.catch((error) => {
console.log("Error getting documents: ", error);
});
}
};
Я новичок в веб-разработке и не знаю других языков, кроме HTML, CSS и JavaScript. Я не знаком с jquery, поэтому, пожалуйста, помогите мне в PURE JS ребята.
Это мой код на jsfidlle - - нажмите здесь