[英]Register User - Added fields
所以我正在嘗試為我的 android 應用程序注冊一個用戶,目前它使用 Firebase 身份驗證來使用 email 和密碼進行注冊。 但我也在嘗試添加一個姓名和電話字段來注冊。
Registration.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// register name/phone/radiogroup
final String name = nameField.getText().toString();
final String phone = phoneField.getText().toString();
final String email = Email.getText().toString();
final String password = Password.getText().toString();
if (TextUtils.isEmpty(name)) {
Toast.makeText(TradesmanLoginActivity.this,
"Please enter your Name...", Toast.LENGTH_SHORT).show();
}
if (TextUtils.isEmpty(phone)) {
Toast.makeText(TradesmanLoginActivity.this,
"Please enter your Phone Number...", Toast.LENGTH_SHORT).show();
}
if (TextUtils.isEmpty(email)) {
Toast.makeText(TradesmanLoginActivity.this,
"Please enter your Email Address...", Toast.LENGTH_SHORT).show();
}
if (TextUtils.isEmpty(password)) {
Toast.makeText(TradesmanLoginActivity.this,
"Please enter a Password...", Toast.LENGTH_SHORT).show();
} else {
loadingBar.setTitle("Tradesman Registration");
loadingBar.setMessage("Please wait while we check your credentials...");
loadingBar.show();
Auth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(TradesmanLoginActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
Toast.makeText(TradesmanLoginActivity.this, "sign up error", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
} else {
Toast.makeText(TradesmanLoginActivity.this, "Tradesman Registration Successful!", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
String name = nameField.getText().toString();
String phone= phoneField.getText().toString();
HashMap<String,String> user=new HashMap<>();
user.put("Name",name);
user.put("Phone",phone);
String user_id = Auth.getCurrentUser().getUid();
DatabaseReference current_user_db = FirebaseDatabase.getInstance().getReference().child("Users").child("Tradesman").child(user_id).child("Name");
current_user_db.setValue(email);
}
}
});
}
}
});
我已經創建了字段等,我只是在努力將姓名和電話放入 firebase 數據庫中。
目前它注冊一個用戶並將名稱設置為用戶 email。 我想將姓名和電話存儲為用戶 ID 的子項(他們在注冊時輸入),而不僅僅是 email
您在setValue
處輸入了錯誤的值。 換成這個。
DatabaseReference current_user_db = FirebaseDatabase.getInstance().getReference().child("Users").child("Tradesman").child(user_id);
current_user_db.setValue(user);
如果您想在/Users/Tradesman/$uid
下使用用戶的姓名和電話號碼創建一個節點,則如下所示:
Auth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(TradesmanLoginActivity.this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
Toast.makeText(TradesmanLoginActivity.this, "sign up error", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
} else {
Toast.makeText(TradesmanLoginActivity.this, "Tradesman Registration Successful!", Toast.LENGTH_SHORT).show();
loadingBar.dismiss();
String name = nameField.getText().toString();
String phone= phoneField.getText().toString();
HashMap<String,String> user=new HashMap<>();
user.put("Name",name);
user.put("Phone",phone);
String user_id = Auth.getCurrentUser().getUid();
DatabaseReference current_user_db = FirebaseDatabase.getInstance().getReference().child("Users/Tradesman").child(user_id);
current_user_db.setValue(user);
}
}
});
最大的變化是你只寫email
,上面的更新寫了整個 map 的名字和電話號碼。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.