I am working with firebase for the first time. For that I am using Firestore. For getting all the messages I use Firebase built in method querySnapshot; Here i am getting all the rows as an object, where I declare a global variable as an array and try to push each and every object into that array. All was perfect. I got the array with all the messages as I want. But I want to get the length of an array. And I dont know every time I got 0 as an output where It have two rows.Lets Look at the Image for more better understanding
Please help me solve this..
CodePudding user response:
I suppose showMessages()
called earlier than you push anything to user_messages
array in onSnapshot
callback.
CodePudding user response:
onSnapshot
lets you listen for snapshots. That means that you cannot guarantee that your handler would have been called even once before showMessages
is invoked.
You could reorder your control flow like this:
// ...
user_chats.onSnapshot((querySnapshot) => {
querySnapshot.forEach(doc => {
user_messages.push(doc.data());
});
showMessages();
});
// ...