【问题标题】:Android-Read Data From Firebase Real Time Database and Displaying on RecyclerViewAndroid-从Firebase实时数据库读取数据并显示在RecyclerView上
【发布时间】:2018-11-15 04:26:00
【问题描述】:

我已成功使用 Firebase 的 RTD 保存数据 databaseIngredients.child(StringId).setValue(ingredients); 其中“成分”是从 EditText 获取的字符串,而 StringId 是“推送”方法的唯一 ID。我已经参考了很多教程,但我无法阅读它,我想在每次使用新数据更新我的数据库时更新我的​​ RecyclerView。我只想使用 recyclerView 显示我的数据库中的所有数据。我不理解 ValueEventListener 方法。请耐心等待我的回复,Firebase 新手。

【问题讨论】:

  • This 是一种推荐的方式,您可以通过这种方式从 Firebase 实时数据库中检索数据并使用 FirebaseRecyclerAdapter 将其显示在 RecyclerView 中。
  • 谢谢,问题已解决

标签: android firebase firebase-realtime-database android-recyclerview


【解决方案1】:

读取数据非常简单,您只需set a listener 监听您提供的database reference 中的change in value

为此目的有两个监听器,

  • One Time Listener(addListenerForSingleValueEvent),仅在您发出请求后读取数据。为此,

DatabaseReference 参考 = database.getReference("Database").child(StringId).setValue(ingredients);

reference.addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        if(dataSnapShot.exists()){
            //update recyclerview or do anything with your data
        }
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        Toast.makeText(getApplicationContext(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
    }
});
  • Continuous Data Listener(addValueEventListener),用于在服务器每次发生变化时获取数据

    DatabaseReference 参考 = database.getReference("Database").child(StringId).setValue(ingredients);

        reference.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(DataSnapshot dataSnapshot) {
                if(dataSnapShot.exists()){
                    //update recyclerview or do anything with your data
                }
            }
    
            @Override
            public void onCancelled(DatabaseError databaseError) {
                Toast.makeText(getApplicationContext(), databaseError.getMessage(), Toast.LENGTH_SHORT).show();
            }
        });
    

【讨论】:

  • 感谢您的详细帮助,但我将如何在 RecyclerView 中显示我的数据?
  • 这也很简单。有很多方法可以做到这一点。这个简单的例子会帮助你。 :) android-examples.com/…
【解决方案2】:

您可以使用 FirebaseRecyclerAdapter 。您将需要一个模型类和一个 ViewHolder 类。 如果您使用的是新版本的firebase-ui,那么您必须使用 FirebaseRecyclerOptions 和 FirebaseRecyclerAdapter

Here's the official documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-10
    • 1970-01-01
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多