智者不为愚者谋,勇者不为怯者死。这篇文章主要讲述从Firebase实时数据库读取Android数据并在RecyclerView上显示相关的知识,希望能为你提供帮助。
我已成功地使用databaseIngredients.child(StringId).setValue(ingredients);
在Firebase的RTD中保存数据其中“ingredients”是从EditText获取的String,StringId是“push”方法的唯一ID。我已经参考了许多教程,但我无法阅读它,我希望每次使用新数据更新数据库时都要更新我的RecyclerView。我只想使用recyclerView在我的数据库中显示所有数据。我不理解ValueEventListener方法。请耐心等待,因为我理解Firebase的新回复。
答案【从Firebase实时数据库读取Android数据并在RecyclerView上显示】阅读数据非常简单,你需要做的就是在你提供的set a listener
中听change in value
的database reference
。
为此目的有两个听众,
- 一次性监听器(
addListenerForSingleValueEvent
),只有在您发出请求后才会读取数据。为了这,
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();
}
});
- 连续数据侦听器(
addValueEventListener
),用于在服务器每次更改时获取数据 DatabaseReference reference = 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(); } });
firebase-ui
,那么你必须使用FirebaseRecyclerOptions和FirebaseRecyclerAdapterHere's the official documentation
推荐阅读
- 如何在Firebase中获取用户数作为计数在android TextView中
- 带有范围的Android Firebase查询(上方,中间,下方)
- 类'test_coredataAppDelegate'的重复接口声明
- 如何在Kali Linux中通过TOR路由所有机器流量
- 如何解决VirtualBox MacOS Mojave 10.14.3中的”无法连接到服务器” Mac App Store错误
- XAMPP虚拟主机可在Chrome和Firefox中使用,但不适用于Microsoft Edge浏览器
- 在Kali Linux中执行不定长度的真正的lololoris攻击(SlowHTTP)
- 如何解决Kali Linux CLI错误(无法获取锁/var/lib/dpkg/lock –打开(9:资源暂时不可用))
- 如何使用Instainsane通过字典攻击来破解Instagram帐户