Firebase“ ValueEventListener”无法正常工作

时间:2018-08-25 19:08:32

标签: java android database firebase

我正在研究一个项目,其中应用程序响应Firebase Realtime数据库中上载的命令,以监听我正在使用ValueEventListner的Firebase Realtime数据库中的更改。在FRDB中上载的命令只能执行一次,然后从FRDB中删除(无论何时执行命令,都会从FRDB中将其删除,并再次调用onDataChanged,如果在“ command”节点下有多个命令,则它将被执行不止一次,要停止,我已经实现了以下代码)。我在addValueEventListener onCreate的{​​{1}}中呼叫了START_STICKY。该应用程序还可以将其他数据上传到FRDB,这可以正常工作,但是service工作不正常。

该代码可以正常运行3或4天,然后停止工作。我不知道怎么了,我完全迷路了。任何帮助,将不胜感激。

ValueEventListner

这是 mCommandsRef.addValueEventListener(new ValueEventListener() { private long fcount = 0; @Override public void onDataChange(DataSnapshot dataSnapshot) { try { Iterable<DataSnapshot> snapshots = dataSnapshot.getChildren(); if (fcount > dataSnapshot.getChildrenCount()) { if (dataSnapshot.getChildrenCount() == 0) { fcount = 0; } return; } int i = 0; for (DataSnapshot snapshot : snapshots) { if (i == 0) { fcount = dataSnapshot.getChildrenCount(); } long c = snapshot.getValue(Long.class); executeCommand(c, snapshot); i++; } } catch (DatabaseException | NullPointerException e) { e.printStackTrace(); executeCommand(DATABASE_EXCEPTION_CODE, dataSnapshot); } } @Override public void onCancelled(DatabaseError databaseError) { } }); 方法:

executeCommand

0 个答案:

没有答案