2017-05-20 6 views
0

私は次のような構造のFirebaseデータベースがあります。firebaseを照会して、Androidで子データを使用する方法を教えてください。

database 
    field1 
     -KkXawoXnSCInWXugbm- 
      email: "[email protected]" 
      firstName: "John" 
      lastName: "Smith" 
      phoneNumber: "123456" 
      password: "password1" 
    field2 
     -KkXanaeY4pWSl2Aqltt 
      email: "[email protected]" 
      firstName:"Jane" 
      lastName: "Doe" 
      phoneNumber: "5550123" 
      password: "password2" 

私のAndroidのプロジェクトでは、私は、電子メールとパスワードを使ってログイン画面を持っています。私は2つの子クラス、field1とfield2を持つUser抽象クラスを持っています。私が何をしたいか

public abstract class User { 
    private String firstName; 
    private String lastName; 
    private String email; 
    private String phoneNumber; 
    private String userID; //this is the Firebase generated key as seen above 
    private String password; 
} 

は、私がログインページに入力した情報を確認できるように、そのユーザーを表すノードを検索し、その詳細の残りの部分にアクセスするために、電子メールを使用しています。

私はFirebaseの初心者で、これを行う方法を広範に検索しましたが、これを解決できませんでした。どんな助けでも大歓迎です!

+0

「-KkXanaeY4pWSl2Aqltt」は、UUIDを意味しますか?そうであれば大型データベースを検索するのが遅くなります –

答えて

0

これは不要です。私があなたに言いたいのは、ノードをUIDからaddressに変更することです。このようにして、クエリに必要なものすべてを手に入れることができます。しかしFirebaseは、私はあなたがこのような電子メールアドレスをencript recomandキーで.シンボル受け付けませんので:

[email protected] - >名@電子メールを、COM

あなたはおそらく見ると、 .,に変更しました。これを行うには、次の方法をお勧めします:

static String encodeUserEmail(String userEmail) { 
    return userEmail.replace(".", ","); 
} 

static String decodeUserEmail(String userEmail) { 
    return userEmail.replace(",", "."); 
} 

希望すると助かります。

+0

ちょっと、私はこれを行い、データベースは次の形式になりました: field1 email: "[email protected]" firstName: "John" lastName: "Smith" phoneNumber: "123456" パスワード: "password1" しかし、dataSnapshot.getValue(field1.class)はnull値を返します。 –

+0

'userId'にyoudr' DatabaseReference'が設定されている場合、Stringクラスを以下のように使う必要があります: 'String email =(String)dataSnapshot.child(" email ")。getValue()' –

0

たとえば、フィールドを調べたい場合は、 Field1。 次に、次のクエリを使用するだけです。

ref.child("field1") //only useful if you are having multiple nodes in field1 
    .orderByChild("email") 
    .equalTo("your_email_query") 

このDataSnapshotを使用すると、他の詳細を照会することができます。 これがうまくいきますように!

関連する問題