[英]How to add pagination in data retreived from FIREBASE STORAGE in android?
我正在嘗試在使用 Firebase 存儲從 firebase 檢索的圖像數據中添加分頁。 我在那里有 10 張圖片,我想在 RecyclerView 中一次顯示 2 張,當用戶向下滾動到垂直結束時,它會加載下一張圖片,直到顯示所有圖片,我還閱讀了 Firebase 的一些文檔,其中提到了使用 storage.list(int max results) 方法,但它只顯示我在該方法中傳遞的結果數,例如,如果我傳遞 2,它只顯示 2 個圖像,我無法再加載。 我在官方文檔中也找到了一種方法,如下所示: https://firebase.google.com/docs/storage/android/list-files
public void listAllPaginated(@Nullable String pageToken) {
FirebaseStorage storage = FirebaseStorage.getInstance();
StorageReference listRef = storage.getReference().child("files/uid");
// Fetch the next page of results, using the pageToken if we have one.
Task<ListResult> listPageTask = pageToken != null
? listRef.list(100, pageToken)
: listRef.list(100);
listPageTask
.addOnSuccessListener(new OnSuccessListener<ListResult>() {
@Override
public void onSuccess(ListResult listResult) {
List<StorageReference> prefixes = listResult.getPrefixes();
List<StorageReference> items = listResult.getItems();
// Process page of results
// ...
// Recurse onto next page
if (listResult.getPageToken() != null) {
listAllPaginated(listResult.getPageToken());
}
}
}).addOnFailureListener(new OnFailureListener() {
@Override
public void onFailure(@NonNull Exception e) {
// Uh-oh, an error occurred.
}
});
}
我對如何使用它感到困惑,我不知道從哪里可以獲得頁面令牌以提供打開下一頁的參考
問題是我的 Firebase 存儲中有 200 張圖像,我想直接對從 Firebase 存儲中檢索的 URL 應用分頁。
為此,您有兩種選擇。 第一個是使用StorageReference#listAll()方法,該方法:
列出此 StorageReference 下的所有項目(文件)和前綴(文件夾)。
根據關於如何在 Android 上使用雲存儲列出文件的官方文檔,請注意:
Cloud Storage for Firebase 允許您列出 Cloud Storage 存儲桶的內容。 SDK 返回當前 Cloud Storage 引用下的項目和對象前綴:
因此,您必須在應用程序代碼中明確區分(項目與前綴)並提供您自己的分頁算法。
您擁有的第二個選項,也是最簡單的選項,在我看來,是將圖像 URL 存儲在Firestore中並實現分頁,如下所述:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.