I am displaying the name of the current user after querying it from the firestore database like so:
database .collection("members") .doc(id) .get() .then(doc => { this.currentUserDetails.name = doc.data().first_name + " " + doc.data().last_name; });
then after fetching the result it should be something like below:
However it does not display the name after the result is fetched immediately,since it takes some time. I am only able to show it after I change some property such as the margin.
How can I display it immediately the result is caught.
My template code:
<v-navigation-drawer app v-model="drawer" class="text-xs-center"> <v-avatar class="mt-5 mb-4" size="100"> <img src="/img/avatars/admin.png"> </v-avatar> <p class="subheading font-weight-bold mb-1">{{currentUserDetails.name}}</p> <p class="text-capitalize mb-3">{{currentUserDetails.userType}}</p>
Advertisement
Answer
Assign new object reference in the this.currentUserDetails
for reactivity.
this.currentUserDetails.name = doc.data().first_name + " " + doc.data().last_name; // assign new object reference in 'this.currentUserDetails' this.currentUserDetails = Object.assign({}, this.currentUserDetails)
Alternate: you can use this.$set()
to get the reactivity working:
// using this.$set(...) this.$set(this.currentUserDetails, 'name', doc.data().first_name + " " + doc.data().last_name);