我可以检查作为我的参考的任何子级数据是否发生了变化没有问题,但我找不到一种方法来检查该子级中的某个字段是否已更改。
这是一些代码,.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"
}
}
我想检查作业字段是否更改,因为坐标字段无论如何都会不断更改。
您在reference
上正确使用了addValueEventListener()
,但您不需要该for loop
。您的DataSnapshot
已经在 job child
上,其中键job
,值为:none
。因此,您需要删除迭代。希望对您有所帮助。