Android-从Firebase实时数据库读取数据并显示在RecyclerView上
Posted
技术标签:
【中文标题】Android-从Firebase实时数据库读取数据并显示在RecyclerView上【英文标题】:Android-Read Data From Firebase Real Time Database and Displaying on 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
中。
谢谢,问题已解决
【参考方案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
【讨论】:
以上是关于Android-从Firebase实时数据库读取数据并显示在RecyclerView上的主要内容,如果未能解决你的问题,请参考以下文章
读取 longlat 数据实时 Firebase 和实现以映射 Android Studio
适用于 Android 的 Firebase 实时(在线)数据库的安全性如何?
无法读取或写入 firebase 实时数据库(android studio)