사용자를 인증하고 FirebaseUser
테이블을 업데이트 한 후 나이, 성별, 주소 등의 추가 데이터를 저장해야합니다. 사용자 노드를 생성하고 UID를 통해 FirebaseUser
. 내 일하는 방식이 맞습니까? 누군가 제가 이해하도록 도와 주시면 감사하겠습니다. 고맙습니다. 맞습니다Firebase 사용자 확장
1
A
답변
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]"
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);
나는 사용자들 사이의 식별자로'uid'을 사용했다. 당신이 할 수있는'messagesRef.child (uid) .setValue (user); '행에서 사용됩니다. pojo 클래스의 필드로'uid'가 필요한 경우 적절하게 추가하십시오. –
내 대답보다 더 깊은 것을위한 upvote를 가져라! – Grimthorr
고마워요! @ 그리 토르 –