firebase Storage 的排名函数在哪里
Where do I the ranking functions for firebase Storage
我正在开发一个应用程序,用户可以上传并为 TagImages 投票,所以需要做的是当有人签入 TagTopic 时获得最受欢迎的图像和最新的图像,所以要做这个排名操作。
我该如何处理?
我认为你需要的是使用 Firestore 或 Realtime,但在你的情况下,实时会更好,因为读写次数,但是,你可以做的是为每个图像创建一个对象,其中包含关于它的元数据,比如票数,也可能是反对票、上传者、上传时间、标签或任何你想要的东西。然后在你的应用程序或网站中,你将进行一个查询,读取让我们说前 5 名,并获取它们,然后使用图像名称从云存储中获取它们。例如:
images:{
image1Name:{
upvote: 10;
downvote: 2;
totolvote: 8;
uploader: 'Remoo';
uploadTime: '10:00:00AM 23/11/2021' //whatever the structure
}
}
然后你查询它们(这是Flutter的例子):
_firebaseDatabase
.reference()
.child("images")
.orderByChild('totolvote')
.limitToFirst(5)
.once().then(()=>{...})
然后从云存储中获取 image1Name。
但请注意,您只能在每个查询中使用一个 orderByChild,另一方面,您可以在 Firestore 中使用多个 where,但读取和写入的成本会更高。最终取决于您以及您如何构建它。希望这对你有用。
我正在开发一个应用程序,用户可以上传并为 TagImages 投票,所以需要做的是当有人签入 TagTopic 时获得最受欢迎的图像和最新的图像,所以要做这个排名操作。
我该如何处理?
我认为你需要的是使用 Firestore 或 Realtime,但在你的情况下,实时会更好,因为读写次数,但是,你可以做的是为每个图像创建一个对象,其中包含关于它的元数据,比如票数,也可能是反对票、上传者、上传时间、标签或任何你想要的东西。然后在你的应用程序或网站中,你将进行一个查询,读取让我们说前 5 名,并获取它们,然后使用图像名称从云存储中获取它们。例如:
images:{
image1Name:{
upvote: 10;
downvote: 2;
totolvote: 8;
uploader: 'Remoo';
uploadTime: '10:00:00AM 23/11/2021' //whatever the structure
}
}
然后你查询它们(这是Flutter的例子):
_firebaseDatabase
.reference()
.child("images")
.orderByChild('totolvote')
.limitToFirst(5)
.once().then(()=>{...})
然后从云存储中获取 image1Name。
但请注意,您只能在每个查询中使用一个 orderByChild,另一方面,您可以在 Firestore 中使用多个 where,但读取和写入的成本会更高。最终取决于您以及您如何构建它。希望这对你有用。