【发布时间】:2017-10-15 17:41:34
【问题描述】:
我有一个从 firebase 检索数据的 android 项目。一切正常,但是当我在 firebase 控制台中删除对象时,它不会反映在应用程序中。
所以,假设我在 firebase 中删除 david hafiz 子节点,它不会在应用程序中删除。我尝试了很多,但找不到正确的方法。我是android编程的新手,希望有人可以帮助我。谢谢。
更新
mDatabase = FirebaseDatabase.getInstance();
mReference = mDatabase.getReference().child("Students").child("Marks");
mReference.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
Log.d("value", "" + dataSnapshot);
fetchData(dataSnapshot);
}
@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {
fetchData(dataSnapshot);
}
@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
return view;
}
private void fetchData(DataSnapshot dataSnapshot) {
StudentData value = dataSnapshot.getValue(StudentData.class);
Log.v("StudentData Fragment", "" + dataSnapshot.getValue());
// Get an iterator.
Iterator<StudentData> ite = mMarksList.iterator();
while (ite.hasNext()) {
StudentData iteValue = ite.next();
if (iteValue.equals(value))
ite.remove();
}
mMarksList.add(value);
Collections.sort(mMarksList, new MarksComparator());
String title = mReference.getKey();
// specify an adapter
mAdapter = new MyAdapter(getContext(), mMarksList, title);
mAdapter.notifyDataSetChanged();
mRecyclerView.setAdapter(mAdapter);
}
【问题讨论】:
-
请分享minimum code that is needed to reproduce the problem。这样就更有可能有人能够提供帮助。
-
好的,我将代码粘贴到我在arraylist中添加对象的位置。谢谢你的建议。
-
Firebase-ui 是 Firebase 的视图绑定库,由 Firebase 人员官方支持他们自己制作的 FirebaseRecyclerAdapter 以一种您甚至不必考虑的方式解决了这个问题github.com/firebase/FirebaseUI-Android 是非常适合任何入门项目
标签: android firebase firebase-realtime-database