使用Firebase数据库时,无法成功显示注册



我正在编写使用Firebase注册的代码。

帐户创建,但始终执行文件的其他部分。请帮助我

我也可以交叉检查每一条线,甚至还要调试。但是我无法解决问题。

package com.e.freshfuits;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.e.freshfuits.model.User;
import com.google.android.material.textfield.TextInputEditText;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import com.google.firebase.database.ValueEventListener;
import com.rengwuxian.materialedittext.MaterialEditText;
import java.net.UnknownServiceException;

public class SignUp extends AppCompatActivity {
    private TextInputEditText editname,editpassword,editphone;
    private Button btnsignup;
    final FirebaseDatabase 
        firebaseDatabase=FirebaseDatabase.getInstance();
    final DatabaseReference 
    table_user=firebaseDatabase.getReference("User");
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sign_up);
        editphone=(TextInputEditText) findViewById(R.id.editphone);
        editname=(TextInputEditText) findViewById(R.id.editname);
        editpassword=(TextInputEditText) findViewById(R.id.editPassword);
        btnsignup=(Button)findViewById(R.id.signupbutton);
    }
    public void mymethod(View view) {
        final ProgressDialog mDialog=new ProgressDialog(SignUp.this);
        mDialog.setMessage("Please wait ! ");
        mDialog.show();
        table_user.addValueEventListener(new ValueEventListener() {
            @Override
            public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
                if (dataSnapshot.child(editphone.getText().toString()).exists()) {
                    mDialog.dismiss();
                    Toast.makeText(SignUp.this,"Already Registered ",Toast.LENGTH_SHORT).show();
                } else {
                    mDialog.dismiss();
                    User user=new User(editname.getText().toString(),editpassword.getText().toString());
                    table_user.child(editphone.getText().toString()).setValue(user);
                    Toast.makeText(SignUp.this,"Account Created sucessfully ! ",Toast.LENGTH_SHORT).show();
                    finish();
                }
            }
            @Override
            public void onCancelled(@NonNull DatabaseError databaseError) {
            }
        });
    }
}

而不是一次执行块,而是执行其他部分。并显示消息,用户已经存在。另一方面,帐户正在创建。

用于检查用户是否签名,您必须使用Firebase进行身份验证。

firebase数据库仅用于存储数据,它无法检查用户是否登录或不签名或喜欢其他内容。

FirebaseAuth auth;
auth = FirebaseAuth.getInstance(); 

然后,如果用户为null,则必须从auth中获得用户,则未在

中签名。
FirebaseUser user = auth.getCurrentUser(); //method

以下代码用于注册用户: -

auth.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
                Log.d(TAG, "createUserWithEmail:success");
                FirebaseUser user = mAuth.getCurrentUser();
                updateUI(user);
            } else {
                // If sign in fails, display a message to the user.
                Log.w(TAG, "createUserWithEmail:failure", task.getException());
                Toast.makeText(EmailPasswordActivity.this, "Authentication failed.",
                        Toast.LENGTH_SHORT).show();
                updateUI(null);
            }
            // ...
        }
    });

相关内容

  • 没有找到相关文章

最新更新