1

사용자를 인증하고 FirebaseUser 테이블을 업데이트 한 후 나이, 성별, 주소 등의 추가 데이터를 저장해야합니다. 사용자 노드를 생성하고 UID를 통해 FirebaseUser. 내 일하는 방식이 맞습니까? 누군가 제가 이해하도록 도와 주시면 감사하겠습니다. 고맙습니다. 맞습니다Firebase 사용자 확장

답변

3

중포 기지에서 일반적인 방법은 helper class (model class, POJO class) 사용자를 위해 작성하는 것입니다이 달성하기 위해 이것을 corect 방법 :

public class User implements Serializable { 
    private String name; 
    private int age; 
    private String gender; 
    private String address; 
    private String email; 

    public User() {} 

    public User(String name, int age, String gender, String address, String email) { 
     this.name = name; 
     this.age = age; 
     this.gender = gender; 
     this.address = address; 
     this.email = email; 
    } 

    public String getName() {return name;} 
    public void setName(String name) {this.name = name;} 

    public int getAge() {return age;}  
    public void setAge(int age) {this.age = age;} 

    public String getGender() {return gender;} 
    public void setGender(String gender) {this.gender = gender;} 

    public String getAddress() {return address;} 
    public void setAddress(String address) {this.address = address;} 

    public String getEmail() {return email;} 
    public void setEmail(String email) {this.email = email;} 
} 

사용자에게 고유 식별자가 필요하므로 uid이 가장 적합합니다. 당신은 다음 코드 줄을 사용하여 uid를 얻을 수 있습니다 :

String uid = FirebaseUser.getInstance().getCurrentUser().getUid(); 

는 데이터베이스에 데이터를 삽입하려면, 당신은 사용자 클래스의 객체를 생성해야합니다. 당신은 단순히 당신의 중포 기지 데이터베이스에서 데이터를 추가/얻기 위해 공공 세터와 게터를 사용하여 이러한면에서

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference(); 
DatabaseReference usersRef = rootRef.child("users"); 
User user = new User("John", 25, "male", "101 Main Street", "[email protected]"); 
usersRef.child(uid).setValue(user); 

: 그래서 다음 코드를 사용하십시오.

데이터베이스는 다음과 같이 다음과 같이 표시됩니다

Firebase-root 
    | 
    --- users 
      | 
      --- uid1 
       | 
       --- name: "John" 
       | 
       --- age: 25 
       | 
       --- gender: "male" 
       | 
       --- address: "101 Main Street" 
       | 
       --- email: "[email protected]" 
+0

나는 사용자들 사이의 식별자로'uid'을 사용했다. 당신이 할 수있는'messagesRef.child (uid) .setValue (user); '행에서 사용됩니다. pojo 클래스의 필드로'uid'가 필요한 경우 적절하게 추가하십시오. –

+0

내 대답보다 더 깊은 것을위한 upvote를 가져라! – Grimthorr

+0

고마워요! @ 그리 토르 –

2

current user's unique ID 사용할 수 얻을 :

FirebaseUser.getInstance().getCurrentUser().getUid(); 

을 그리고 당신은 다음 중포 기지 실시간 데이터베이스로 사용자에 대한 저장 자세한 내용은 사용 할 수있는 중요한 고유 ID, 뭔가 같은 :

FirebaseUser user = FirebaseUser.getInstance().getCurrentUser(); 
String userId = user.getUid(); 

DatabaseReference usersRef = FirebaseDatabase.getInstance().getReference("users"); 

HashMap<String, Object> userDetails = new HashMap<>(); 
message.put("name", "P. Sherman"); 
message.put("age", 50); 
message.put("gender", "male"); 
message.put("address", "42 Wallaby Way, Sydney"); 
message.put("email", user.getEmail()); 

messagesRef.child(userId).setValue(userDetails);