重新安装后,Firestore 不会获取以前的数据



我正在使用 Firebase Cloud Firestore 和 Firestore UI RecyclerView 在MainActivity上显示项目。一切正常,除了当我卸载并重新安装该应用程序时,query不会获取以前添加的项目,只显示一个空列表。当我在重新安装后将新项目添加到 Firestore 时,仅获取该项目,仍然没有以前的数据。但是,我可以在Firebase控制台上看到以前添加的数据和新项目。

有没有人遇到过类似的问题,或者知道什么会导致这种情况?

我设置RecyclerView的函数如下。我调用这个函数,然后在onStart中调用adapter.startListening(),在onStop中调用adapter.stopListening()

private void setupRecyclerView() {
    if(shouldStartSignIn()) return;
    if(!PermissionUtils.requestPermission(this, RC_STORAGE_PERMISSION, android.Manifest.permission.WRITE_EXTERNAL_STORAGE)) {
        Log.e(TAG, "Permission not granted, don't continue");
        return;
    }
    LinearLayoutManager layoutManager = new LinearLayoutManager(this);
    pagesRecyclerView.setLayoutManager(layoutManager);
    Query query = FirebaseFirestore.getInstance().collection(Page.COLLECTION).whereEqualTo(Page.FIELD_USER_ID, FirebaseAuth.getInstance().getCurrentUser().getUid()).orderBy(Page.FIELD_TIMESTAMP).limit(50);
    FirestoreRecyclerOptions<Page> options = new FirestoreRecyclerOptions.Builder<Page>().setQuery(query, Page.class).build();
    adapter = new PagesAdapter(options, this);
    pagesRecyclerView.setAdapter(adapter);
}

您已经初始化了query但查询未附加到任何实际拉取数据的侦听器。所以你的适配器是空的。基本上你需要做这样的事情:

query.addSnapshotListener(new EventListener<QuerySnapshot>() {
  @Override
  public void onEvent(@Nullable QuerySnapshot snapshot,
                    @Nullable FirebaseFirestoreException e) {
      if (e != null) {
          // Handle error
          //...
          return;
      }
      // Convert query snapshot to a list of chats
      List<Chat> chats = snapshot.toObjects(Chat.class);
      // Update UI
      // ...
  }
});

您可以在此处阅读有关它的更多信息:https://github.com/firebase/FirebaseUI-Android/tree/master/firestore#querying

相关内容

  • 没有找到相关文章

最新更新