从firebase中选择数据

时间:2016-07-26 11:06:09

标签: android firebase firebase-realtime-database

我目前正在开发一个Android应用程序,其中我使用firebse作为DB。 我想选择一个特定的节点并设置它的密码,那么我该怎么办呢? 我使用了这段代码,但它为所选节点添加了另一个密码属性。 这是数据库结构,我想设置用户toto的密码值。

enter image description here

public void resetPassword(){
    //setting connexion parameter
    final Firebase ref = new Firebase("https://test.firebaseio.com/users");
    Query query = ref.orderByChild("username").equalTo("toto");


    Firebase statusRef =query.getRef().child("password");
    statusRef.setValue("COMPLETED");



    System.out.println("Hellooooo FBM     ");
}

1 个答案:

答案 0 :(得分:1)

您的query还没有与该查询匹配的节点。要获得匹配的节点,您必须附加一个监听器(如documentation on reading data所示)。

一个简单的例子:

public void resetPassword(){
    //setting connexion parameter
    final Firebase ref = new Firebase("https://test.firebaseio.com/users");
    Query query = ref.orderByChild("username").equalTo("toto");

    query.addListenerForSingleValueEvent(new ValueEventListener() {
        @Override
        public void onDataChange(DataSnapshot snapshot) {
          for (DataSnapshot user: snapshot.getChildren()) {
            Firebase statusRef = user.child("password").getRef();
            statusRef.setValue("COMPLETED");
          }
        }

        @Override
        public void onCancelled(DatabaseError databaseError) {
            Log.w(TAG, "getUser:onCancelled", databaseError.toException());
        }
    });
}