我正在開發一個應用程式,用戶可以上傳和投票給 TagImages,所以需要的是當有人簽入 TagTopic 時獲得最流行的影像和最新的影像,所以要進行這個排名操作。
我應該如何處理這個問題?
uj5u.com熱心網友回復:
我認為您需要的是使用 Firestore 或實時,但在您的情況下實時會更好,因為讀取和寫入的數量,但是,您可以做的是為每個影像創建一個物件,其中包含有關它的元資料,例如票數,也可能是反對票,誰上傳,上傳時間,標簽或任何其他你想要的東西。然后在您的應用程式或網站中,您將進行查詢,讀取前 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,但讀取和寫入的成本會更高。最終取決于您以及您如何構建它。希望這對你有用。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/365909.html
上一篇:如何在陣列中找到三個最大的數字?
