2017-09-27 15 views
0

Firebaseで簡単なAndroidアプリケーションを開発しています。電子メールとパスワードによる認証を使わずにリアルタイムデータベースにユーザを保存したい。私は単にラジオボタンで選んだ彼らの名前とその役割(例えば教師と生徒)を望んでいます。その後、私は、リスト内のすべてのユーザーを表示したいが、私は、データベースが設定されなければならないか疑問とどのように彼らの役割Android - Firebaseの2種類のユーザー

に基づく権利の活動を表示するようにして、それは次のようになります。

User 
"something" 
    username: "name" 
    role: "Teacher" 

または

User 
    "KA2aslkdajsdlsad" 
    username: "name" 
    role: "teacher" 

答えて

2

間違いなく2番目のオプションを使用する必要があります。これらのすべてのユーザーに固有の識別子を使用する必要があります。新しいユニークなキー(時間に基づいて)を達成するために、私はpush()メソッドを使用してあなたを勧める。また、サーバーとの協議なしにクライアント上で完全に生成されます。

一方、あなたはFirebase Anonymous Authenticationを使用しています。

希望します。

+0

感謝を

public class User{ String username; int roleId; // 1 for student, 2 for teacher public User(String username, int roleId){ this.username = username; this.roleId = roleId; } } 

今のようなあなたのリアルタイムデータベース内の自分のユーザーを保存。あなたが選んだ役割に基づいて適切な活動を表示する方法を知っていますか? – John

+0

ユーザー -kSFUSDSDeevefeve(ユニークキー) UID: "KA2aslkdajsdlsad" 名: "名前" 役割: "先生" – akhilesh0707

+0

あなたは歓迎ジョンです!これは基本的に別の質問です。このコミュニティのルールに従うために、新しい質問を投稿してください。私と他のユーザーがあなたを助けることができます。 –

2

まず、ユーザーの情報に基づいてPOJO Javaオブジェクトを作成します。あなたはすべてのユーザーを取得する必要がある場合は、この方法で行うことができます

FirebaseDatabase.getInstance() 
      .getReference() 
      .child("users") 
      .push() 
      .setValue(new User("John", 1)); 

:あなたの思考のための

final List<User> userList = new ArrayList<>(); 
FirebaseDatabase.getInstance() 
      .getReference() 
      .child("users") 
      .addListenerForSingleValueEvent(new ValueEventListener() { 
       @Override 
       public void onDataChange(DataSnapshot dataSnapshot) { 

        for (DataSnapshot snapshot : dataSnapshot.getChildren()){ 
         User user = snapshot.getValue(User.class); // this is your user 
         userList.add(user); // add to list 
        } 
        // Now may be display all user in listview 
       } 

       @Override 
       public void onCancelled(DatabaseError databaseError) { 

       } 
      });