一身转战三千里,一剑曾当百万师。这篇文章主要讲述Android - Firebase addChildEventListener触发器[重复]相关的知识,希望能为你提供帮助。
这个问题在这里已有答案:
- Firebase child_added only get child added 5个答案
addChildEventListener
,并且我知道这个方法应该在添加/删除/更改新子项时触发...由于某些原因当我的Activity
加载时,此方法会触发。添加新孩子时不需要触发......?码
refToVideos.getReference(Params.VIDEOS).child(currentUser.getUid()).addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot snapshot, String s) {
long countComments= (long)snapshot.child(Params.COUNTCOMMENTS).getValue();
int countComment = ((int) countComments);
String frameURL= (String)snapshot.child(Params.FRAMEURL).getValue();
String genre= (String)snapshot.child(Params.GENRE).getValue();
long like= (long)snapshot.child(Params.LIKES).getValue();
int likes = ((int)like);
String uploadDate= (String)snapshot.child(Params.UPLOADDATE).getValue();
String userProfile= (String)snapshot.child(Params.USERPROFILE).getValue();
String userUID= (String)snapshot.child(Params.USERUID).getValue();
String userName= (String)snapshot.child(Params.USERNAME).getValue();
String videoID= (String)snapshot.child(Params.VIDEOID).getValue();
String videoName= (String)snapshot.child(Params.VIDEONAME).getValue();
String videoURL= (String)snapshot.child(Params.VIDEOURL).getValue();
long view= (long)snapshot.child(Params.VIEWS).getValue();
int views = ((int)view);
Video video = new Video(videoID,userUID,genre,videoName,videoURL,frameURL,userName,userProfile,likes,
views,countComment,uploadDate);
videosList.add(video);
if(adapter != null)
adapter.notifyDataSetChanged();
}@Override
public void onChildChanged(DataSnapshot dataSnapshot, String s) {}@Override
public void onChildRemoved(DataSnapshot dataSnapshot) {}@Override
public void onChildMoved(DataSnapshot dataSnapshot, String s) {}@Override
public void onCancelled(DatabaseError databaseError) {}
});
答案来自documentation for
onChildAdded
:对于每个现有子项,将触发此回调一次,然后每次将新子项添加到指定路径时再次触发此回调。因此,当您附加一个监听器时,它会立即为其侦听的位置中的任何现有子级调用其
onChildAdded
方法。这就是API的定义方式,您无法对其进行更改。如果您只想了解在附加监听器之后添加的新子项,则必须在子节点中添加类似时间戳的内容,以确定它们是否为“新”。
【Android - Firebase addChildEventListener触发器[重复]】另请参阅以前有关该主题的以下问题:
- Firebase child_added only get child added
- How to only get new data without existing data from a Firebase?
- Firebase: Get New Child Added
推荐阅读
- 我没有在我的Android回收站视图中看到mp3文件名,而是看到了他们的链接
- Android微调器没有显示Firebase实时数据库数据()
- Android通知会多次打开,而不是只打开一次
- 如何使用firebase作为数据库在android中获取附近的用户名()
- Android(从运行时生成的文本字段中将数据保存到Firebase)
- 如何在Firebase中获取用户数作为计数在android TextView中
- 从Firebase实时数据库读取Android数据并在RecyclerView上显示
- 带有范围的Android Firebase查询(上方,中间,下方)
- 类'test_coredataAppDelegate'的重复接口声明