2016-10-24 8 views
1

私は辛抱強くお待ちください。まだJavaを学習していますが、私はまだ分かりません。アップデート(設定されていません)Android Firebaseの子データ

私はFirebaseに接続する簡単なログイン/登録アプリを作成しました。しかし、他のデータを変更することなく、データベースの一部のデータを更新したいと思います。たとえば、ログインしているユーザーの場合、以下のコードで名前と住所を入力できます。しかし、別の活動で、自分の年齢を追加できるようにしたいのであればどうでしょうか? set()を使うと他の日付はすべて上書きされますが、update()の使い方は分かりません。

私はこのフォーラムや他の場所を検索しましたが、私の状況に適用するのに十分な回答は実際には分かりません。もし誰かが私が本当にそれを感謝するのを助けることができます。

おかげ

private void saveUserInformation(){ 

    String name = editTextName.getText().toString().trim(); 
    String address = editTextAddress.getText().toString().trim(); 

    UserInformation userInformation = new UserInformation(name, address); 
    FirebaseUser user = firebaseAuth.getCurrentUser(); 
    databaseReference.child(user.getUid()).setValue(userInformation); 

    Toast.makeText(this, "Information Saved...", Toast.LENGTH_SHORT).show(); 
} 

public class UserInformation { 

public String name; 
public String address; 

public UserInformation(String name, String address) { 
    this.name = name; 
    this.address = address; 
} 

}

答えて

0

あなたはこれを試して、あなたのユーザー(例えば年齢)に別の情報(子)を追加したい場合は、次の

databaseReference.child(user.getUid()).child("age").setValue(22); 

ここでは説明します。 Firebaseチュートリアルから:

Screenshot from reference

+0

ありがとう、私はこれを後で試してみる。他の情報を別々に(後ろに)追加すると、名前と住所が削除されませんか?私はset(),,, – Adrian

+0

@Adrianではなく、名前とアドレスを持つユーザーを作成してから、メインの子が 'userId'、2つのサブファイル' name'と 'address'を持つJSONツリーを取得しなければならないと思った。今度はあなたの 'userId'子にデータを追加したい場合は' age'のような新しいサブクラスを作成する必要があります。あなたはそれを私が記述した方法で行い、データは削除または置換されません。 'name'と' address'を削除する唯一の方法は、 'age'フィールドだけを持つ新しいClassを作成し、' databaseReference.child(user.getUid())。setValue(objectWithAge); 'のように設定した場合です。 'update()'について - 私は年齢を指定して新しいHashMapを作成することでそれを行うことができると信じています。 – tomiQrsd

+0

TomiQrsd - 本当にありがとう、本当に理解しやすく、完璧に動作します。正確なコードとFirebaseチュートリアルのラインを提供してくれてありがとう、私のプロジェクトに合った他のFirebaseの例を理解して翻訳するのに役立ちます。乾杯 – Adrian

関連する問題