检查字段数据是否更改而不是子数据中的任何字段

时间:2017-04-06 21:00:28

标签: android web-services firebase firebase-realtime-database

我可以检查一下我参考的孩子的数据是否已经改变没有问题,但是我找不到一种方法来检查该孩子中某个字段是否发生了变化。

这是一些代码.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"
    }
  }

我想检查作业字段是否发生变化,因为坐标字段无论如何都会不断变化。

1 个答案:

答案 0 :(得分:7)

您在addValueEventListener()上使用正确reference,但您不需要for loop。您的DataSnapshot已在job child上,其中密钥为job,值为:none。所以你需要删除迭代。希望它有所帮助。