Javascript Firestore查询以某种方式将相同的用户分组在一起
我这里有这个firestore代码,我想通过createdAt desc订购它。但是,当我运行它时,它还将所有相同的用户分组在一起。您可以在这里看到将相同用户放在一起的效果。我做错了什么 只有在我添加了一个查询以从Javascript Firestore查询以某种方式将相同的用户分组在一起,javascript,firebase,google-cloud-firestore,Javascript,Firebase,Google Cloud Firestore,我这里有这个firestore代码,我想通过createdAt desc订购它。但是,当我运行它时,它还将所有相同的用户分组在一起。您可以在这里看到将相同用户放在一起的效果。我做错了什么 只有在我添加了一个查询以从users集合中获取昵称后,才会发生这种情况 var self = this; let db = firebase.firestore(); db.collection("posts") .orderBy("createdAt", "
users
集合中获取昵称后,才会发生这种情况
var self = this;
let db = firebase.firestore();
db.collection("posts")
.orderBy("createdAt", "desc")
.get()
.then(function(querySnapshot) {
querySnapshot.forEach(function(doc) {
self.channelId = doc.data().ytChannelId;
self.userId = doc.data().uid;
let getUser = db.collection("users").where("uid", "==", self.userId);
getUser.get().then(function(snapshot) {
snapshot.forEach(function(snapDoc) {
self.nickname = snapDoc.data().username;
console.log("nickname 73493");
console.log(self.nickname);
self.queryData.push({
index: self.currentIndex,
pid: doc.data().pid,
title: doc.data().ytTitle,
description: doc.data().ytDescription,
imageurl: doc.data().ytImageUrl,
ytid: doc.data().ytid,
channelTitle: doc.data().ytChannelTitle,
channelId: doc.data().ytChannelId,
recommendation: doc.data().recommendation,
userphoto: doc.data().photourl,
votes: doc.data().noOfVotes,
nickname: self.nickname
});
self.currentIndex = self.currentIndex + 1;
});
});
// console.log(doc.id, " => ", doc.data());
});
})
.catch(function(error) {
console.log("Error getting documents: ", error);
});
}
我只是用一个计算属性对queryData进行排序,不知怎的,它是有效的
computed: {
sortedQueryData: function() {
this.queryData.sort(function(a, b) {
var keyA = new Date(a.createdAt),
keyB = new Date(b.createdAt);
// Compare the 2 dates
if (keyA > keyB) return -1;
if (keyA < keyB) return 1;
return 0;
});
console.log(self.queryData);
return this.queryData;
}
},
计算:{
sortedQueryData:函数(){
this.queryData.sort(函数(a,b){
var keyA=新日期(a.createdAt),
keyB=新日期(b.createdAt);
//比较两个日期
如果(keyA>keyB)返回-1;
if(keyA
我不知道为什么它被组合在一起,我仍然在寻找一个更好的方法来做到这一点。不知何故,这暂时解决了这个问题。我只是用计算属性对queryData进行排序,不知何故它起作用了
computed: {
sortedQueryData: function() {
this.queryData.sort(function(a, b) {
var keyA = new Date(a.createdAt),
keyB = new Date(b.createdAt);
// Compare the 2 dates
if (keyA > keyB) return -1;
if (keyA < keyB) return 1;
return 0;
});
console.log(self.queryData);
return this.queryData;
}
},
计算:{
sortedQueryData:函数(){
this.queryData.sort(函数(a,b){
var keyA=新日期(a.createdAt),
keyB=新日期(b.createdAt);
//比较两个日期
如果(keyA>keyB)返回-1;
if(keyA
我不知道为什么它被组合在一起,我仍然在寻找一个更好的方法来做到这一点。不知何故,这暂时解决了问题