2016-07-26 38 views
0

現在、私はfirebseをDBとして使用しているアンドロイドアプリを開発中です。 重要なノードを選択してそのパスワードを設定したいのですが、どのようにすればいいですか? 私はこのコードを使用しましたが、選択したノードに別のパスワード属性を追加します。 これは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  "); 
} 
+2

firebaseが認証を処理するために、全体の機能を持っているので、あなたはおそらく、ユーザノード内のパスワードを保存するべきではありません。 – 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たくさん:)それは動作します:) –

関連する問題