我可以检查一下我参考的孩子的数据是否已经改变没有问题,但是我找不到一种方法来检查该孩子中某个字段是否发生了变化。
这是一些代码.child(“job”)不起作用,因为作业是字段。这只是我尝试的事情。
Firebase ref = new Firebase(Config.FIREBASE_URL);
//adding a value event listener so if data in database changes it does in textview also not needed at the minute
ref.child("Driver").child("Driver2").child("job").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot snapshot) {
for (DataSnapshot postSnapshot : snapshot.getChildren()) {
Toast.makeText(ProfileActivity.this, "YEAAA ", Toast.LENGTH_SHORT).show();
}
}
/************had to implement this method****************/
@Override
public void onCancelled(FirebaseError firebaseError) {
System.out.println("The read failed: " + firebaseError.getMessage());
}
});
这是数据库中的json
"Driver" : {
"Driver1" : {
"job" : "none",
"lat" : 53.4013419,
"lon" : -111.803055,
"name" : "JOHNNY"
},
"Driver2" : {
"job" : "job",
"lat" : 53.4012956,
"lon" : -6.4091191,
"name" : "MICK"
},
"Driver3" : {
"job" : "cccc",
"lat" : 45.815399,
"lon" : 15.966568,
"name" : "Boris"
}
}
我想检查作业字段是否发生变化,因为坐标字段无论如何都会不断变化。
答案 0 :(得分:7)
您在addValueEventListener()
上使用正确reference
,但您不需要for loop
。您的DataSnapshot
已在job child
上,其中密钥为job
,值为:none
。所以你需要删除迭代。希望它有所帮助。