Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firestore查询以某种方式将相同的用户分组在一起_Javascript_Firebase_Google Cloud Firestore - Fatal编程技术网

Javascript Firestore查询以某种方式将相同的用户分组在一起

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", "

我这里有这个firestore代码,我想通过createdAt desc订购它。但是,当我运行它时,它还将所有相同的用户分组在一起。您可以在这里看到将相同用户放在一起的效果。我做错了什么

只有在我添加了一个查询以从
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
我不知道为什么它被组合在一起,我仍然在寻找一个更好的方法来做到这一点。不知何故,这暂时解决了问题