У меня есть лента, которая показывает художественные работы пользователей. Я хочу отфильтровать сообщения пользователей по категории и времени, когда пользователь их опубликовал, чтобы в ленте были самые последние сообщения ближе к верхней части страницы. Я использую функцию firebase для извлечения этих данных.
У меня есть коллекция firestore, которая выглядит следующим образом
tasks -tasksID-
{
category: art
date: 16 october at 3:00pm
images: {
0 image1
1 image2
}
}
функция firebase:
import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin'
admin.initializeApp()
export const getFeed = functions.https.onCall(async (req,res) =>{
const docs = await admin.firestore().collection('tasks').where('category',
'==', 'art').orderBy('date', 'desc').limit(20).get()
return docs.docs.map(doc => {
return {
postID: doc.id,
...doc.data()
}
})
})
машинопись фида машинописи:
artFeed (){
const getFeed = this.aff.httpsCallable('getFeed')
this.ajax = getFeed({}).subscribe(data=> {
console.log(data)
this.posts = data
})
}
Однако на консоли появляется сообщение об ошибке «Ошибка ошибки: ВНУТРЕННЯЯ».
Эта функция прекрасно работает, когда я использую функцию where () и orderby() работают отдельно и сами по себе.
Вот так выглядят и индексы моей базы данных.
collectionId Fields indexed Query scope Status
category Ascending
tasks uid Ascending Collection Enabled
date Ascending
tasks category Ascending
uid Ascending Collection Enabled
date Descending