【发布时间】:2020-02-13 14:58:28
【问题描述】:
我有一个显示用户作品的提要。我想按用户发布的类别和时间过滤用户帖子,以便提要的最新帖子更靠近页面顶部。我正在使用 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
})
}
但是,我在控制台上收到一条错误消息,显示“ERROR Error: INTERNAL”。
当我单独使用 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
【问题讨论】:
标签: angular typescript firebase google-cloud-functions angularfire2