Android Firebase OnDataChange未被触发

时间:2018-05-11 13:42:03

标签: android firebase listener

所以我尝试创建一个侦听器,在Firebase中将新条目添加到我的数据库时宣传该活动,如下所示:

public void dataListener() {
    Query lastQuery = mDatabase.child("id").orderByKey().limitToLast(1);
    lastQuery.addValueEventListener(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot dataSnapshot) {
            Log.d("ChildAdded",dataSnapshot.getChildren().toString());
            getAddedUpdates(dataSnapshot);
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.d("ChildError",databaseError.toString());
        }
    });

我正在调用此dataListener onCreate,但没有任何反应,我的意思是,当我在另一部手机上添加新条目时,即使已插入数据,也未触发此条目(当我在另一个方法中使用singleEeventListener重新加载应用程序时,会收到数据)

enter image description here

所有字段均为文本(字符串)

1 个答案:

答案 0 :(得分:1)

位置错误,您需要更改此内容:

Query lastQuery = mDatabase.child("id").orderByKey().limitToLast(1);

进入这个:

 DatabaseReference ref=FirebaseDatabase.getInstance().getReference();
 Query lastQuery=ref.orderByKey().limitToLast(1);

快照位于根节点,然后您就可以订购密钥并检索最后一个密钥。

child("id")下面没有任何密钥,例如:

id
 pushid
   name: peter

child'("id")等于randomid然后你可以这样做:

Query lastQuery=ref.orderByChild("id").equalTo(key_here)