Android:如何让用户更改DatabaseReference?

时间:2017-01-24 16:00:34

标签: android node.js firebase firebase-realtime-database

在我的Node.js中,我有以下几行代码:

ref.on("child_changed", function(snapshot) {
    var stateSnapshot = snapshot.child("state");
    if (stateSnapshot.val() != "Calm") {
        var latitudeSnapshot = snapshot.child("latitude");
        var longitudeSnapshot = snapshot.child("longitude");

        var locationSnapshot = snapshot.child("location");
        var locationReference = locationSnapshot.ref;

        var latitude = latitudeSnapshot.val();
        var longitude = longitudeSnapshot.val();
    }
}

这是我的数据库结构的可视化: Visualization of Database structure

我需要知道如何在Android中编写相同的代码。我想要这样的东西:

FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference usersReference = database.getReference("users");

usersReference.addChildEventListener(new ChildEventListener() {
    // Retrieve new posts as they are added to Firebase
    @Override
    public void onChildUpdated (DataSnapshot snapshot, String userKey){
            }
        });

1 个答案:

答案 0 :(得分:0)

这将是确切的翻译,但是我不确定在android中使用是多么理想,因为有更好的方法来获取数据,例如模特课。

       @Override
        public void onChildChanged(DataSnapshot dataSnapshot, String s) {
            DataSnapshot stateSnapshot = dataSnapshot.child("state");
            if (!stateSnapshot.getValue(String.class).equals("Calm")) {
                DataSnapshot latitudeSnapshot = dataSnapshot.child("latitude");
                DataSnapshot longitudeSnapshot = dataSnapshot.child("longitude");

                DataSnapshot locationSnapshot = dataSnapshot.child("location");
                DatabaseReference locationReference = locationSnapshot.getRef();

                long latitude = latitudeSnapshot.getValue(Long.class);
                long longitude = longitudeSnapshot.getValue(Long.class);
            }
        }