マイページにてリストを表示しているのですが、そのリストを時間(降順)で並び替えをしたいです。
.orderBy("time", "desc")として、firestoreのtimeというフィールドの値を参照して
降順に並び替えをしたいのですが、下記のようなエラーが出てしまいます。
他のページにて下記のように記述したら降順で並び替えが出来ています。
created() { firebase .firestore() .collection("posts") .orderBy("time", "desc") .limit(16) .get() .then((snapshot) => { snapshot.forEach((doc) => { this.allData.push({ ...doc.data(), id: doc.id }); console.log(this.allData); }); }); },
.where("uid", "==", this.uid)
このように記述している部分が原因なのでしょうか。
分かる方いらっしゃいましたらお力添えをいただきたいです。
宜しくお願い致します。
#list.vue
<template> <div class="card"> <div class="face face1 flex"> <div class="content"> <img class="profile-icon" width="50" height="50" src="../assets/アイコン.jpg" /> <h3>{{ list.title }}</h3> {{ list.uid }} </div> </div> <div class="face face2 flex"> <div class="content flex"> <button class="hide-btn" @click="deletePost()">×</button> <p>{{ list.description }}</p> <router-link :to="`/chat/${list.id}`" class="join-btn flex" >ルームへ参加</router-link > <!-- to="`chat/${list.id}`"でchat/(取得したid)でページ遷移する。 --> <!-- ${ ~ }で囲ってあげないと文字列のままになってしまうので注意。 --> <!-- 「list.id」propsで親コンポーネントから取得したidを取得。--> <img src="../assets/ブックマーク.jpg" alt="ブックマーク" class="bookmark-icon" @click="savePost" /> <p class="post-time">{{ list.time.toDate().toLocaleString() }}</p> </div> </div> </div> </template>
#mypage.vue
export default { data() { return { listData: [], }; }, components: { Header, List, }, firebase .firestore() .collection("posts") .orderBy("time", "desc") .where("uid", "==", this.uid) .get() .then((snapshot) => { snapshot.forEach((doc) => { this.listData.push(doc.data()); // console.log(this.listData); }); });
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/21 07:32