2016-07-26 80 views
0

我目前正在開發一個android應用程序,其中我使用firebse作爲數據庫。 我想選擇一個特定的節點並設置它的密碼,所以我該怎麼做? 我使用此代碼,但它將另一個密碼屬性添加到選定的節點。 這是數據庫結構,我想設置用戶toto的密碼值。從firebase中選擇數據

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  "); 
} 
+2

你可能不應該存儲在用戶節點中的口令,因爲火力點有一個整體的功能來處理身份驗證。 – adolfosrs

回答

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()); 
     } 
    }); 
} 
+0

thx很多:)它的工作:) –