我是devlop一个有组管理员的应用程序,这个组管理员可以通过签署他们的firebase加入用户,并在管理员签名后,我希望应用程序将登录回管理员(应用程序可以有多个管理员-每个组一个),我试图保存当前的firebase用户,然后切换回来,但当firebaseauth是更改它自动更改永久用户,我甚至使他最终,但它没有帮助
private final FirebaseUser currUser = currUserauth.getCurrentUser();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_contact);
db = FirebaseFirestore.getInstance();
Button addContactBtn = findViewById(R.id.add_contact_btn);
progressBar = findViewById(R.id.add_content_progressbar);
userEmailEt = findViewById(R.id.et_email);
passwordEt = findViewById(R.id.et_password);
confirmBtnEt = findViewById(R.id.confirmBtn);
nameEt = findViewById(R.id.add_contact_name_et);
addContactBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
addNewContact();
}
});
}
private void addNewContact() {
progressBar.setVisibility(View.VISIBLE);
final String email = userEmailEt.getText().toString();
String password = passwordEt.getText().toString().trim();
final String name = nameEt.getText().toString();
if (!Patterns.EMAIL_ADDRESS.matcher(email).matches() || email.equals("")) {
userEmailEt.setError("Email is not valid");
} else if (TextUtils.isEmpty(password)) {
passwordEt.setError("password is not valid");
} else if(TextUtils.isEmpty(name)){
nameEt.setError("נא למלא שם");
}else {
mAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign in success, update UI with the signed-in user's information
FirebaseUser firebaseUser = mAuth.getCurrentUser();
Toast.makeText(getApplicationContext(), "User created successfully", Toast.LENGTH_SHORT).show();
update();
progressBar.setVisibility(View.GONE);
mAuth.signOut();
mAuth.updateCurrentUser(currUser).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
mAuth.getCurrentUser().reload().addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Intent intent = new Intent(getApplicationContext(), ContactActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
System.out.println("From addContactActivity: " + mAuth.getCurrentUser().getEmail());
startActivity(intent);
finish();
}
});发布于 2019-08-29 04:27:03
用户帐户不能在前端的Firebase身份验证中创建其他用户帐户。此外,一次只能有一个用户登录。
您要做的最适合在您控制的后端上运行,使用create the user accounts的Firebase Admin SDK。
https://stackoverflow.com/questions/57699556
复制相似问题