[英]Connecting Real time database to Authentication database on Firebase
我正在創建一個允許用戶登錄和注冊的應用程序。 目前我正在使用 firebase 來存儲這些數據,但我需要的數據不僅僅是電子郵件和密碼。 我能夠將多個字段存儲到實時數據庫中,但是我的登錄頁面使用的是帶有 firebase 的身份驗證。 有沒有辦法將兩者聯系起來?
登錄頁面
//creating a new user
firebaseAuth.signInWithEmailAndPassword(username, password)
.addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
Toast.makeText(MainActivity.this, "Login Successful", Toast.LENGTH_LONG).show();
startActivity(new Intent(getApplicationContext(), FAQ.class));
finish();
} else{
Toast.makeText(MainActivity.this, "Login Error", Toast.LENGTH_LONG).show();
}
}
});
}
注冊頁面
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_register);
//firebaseAuth =FirebaseAuth.getInstance();
userN=(EditText)findViewById(R.id.userN);
password2=(EditText)findViewById(R.id.password2);
gender2=(EditText)findViewById(R.id.gender2);
headInjury2=(EditText)findViewById(R.id.headInjury2);
Smoker2=(EditText)findViewById(R.id.Smoker2);
dateOfBirth2=(EditText)findViewById(R.id.dateOfBirth2);
submitBtn2=(Button)findViewById(R.id.submitBtn2);
user= new User();
reff= FirebaseDatabase.getInstance().getReference().child("User");
submitBtn2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int date=Integer.parseInt(dateOfBirth2.getText().toString().trim());
user.setUserN(userN.getText().toString().trim());
user.setPassword2(password2.getText().toString().trim());
user.setGender2(gender2.getText().toString().trim());
user.setHeadInjury2(headInjury2.getText().toString().trim());
user.setSmoker2(Smoker2.getText().toString().trim());
user.setDOB(date);
reff.push().setValue(user);
Toast.makeText(Register.this, "Successfully registered", Toast.LENGTH_LONG).show();
}
});
}
要在實時數據庫中存儲有關用戶的其他數據,您通常希望將該信息存儲在用戶的 UID 下。
所以你會有類似的東西
Users: {
uidOfCaitlin: {
firstName: "Caitlin",
lastName: "Daly McDowell",
dob: "2020-03-10"
},
uidOfFrank: {
firstName: "Frank",
lastName: "van Puffelen",
dob: "1970-03-10"
}
}
要存儲這樣的數據,您需要執行以下操作:
DatabaseReference usersRef = FirebaseDatabase.getInstance().getReference().child("Users");
String uid = FirebaseAuth.getInstance().getCurrentUser().getUid();
usersRef.child(uid).setValue(user);
這個話題之前已經討論過很多了,所以我也建議你看看:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.