Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
NullPointerException:尝试调用虚拟方法';java.lang.String com.google.firebase.auth.FirebaseUser.getUid()';关于空对象引用_Java_Android_Firebase_Firebase Authentication - Fatal编程技术网

NullPointerException:尝试调用虚拟方法';java.lang.String com.google.firebase.auth.FirebaseUser.getUid()';关于空对象引用

NullPointerException:尝试调用虚拟方法';java.lang.String com.google.firebase.auth.FirebaseUser.getUid()';关于空对象引用,java,android,firebase,firebase-authentication,Java,Android,Firebase,Firebase Authentication,java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String com.google.firebase.auth.FirebaseUser.getUid()” Logcat java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.google.firebase.auth.FirebaseUser.getUid()' o

java.lang.NullPointerException:尝试对空对象引用调用虚拟方法“java.lang.String com.google.firebase.auth.FirebaseUser.getUid()”

Logcat

java.lang.NullPointerException: Attempt to invoke virtual method 'java.lang.String com.google.firebase.auth.FirebaseUser.getUid()' on a null object reference
        at com.marsad.earningapp.activity.RegisterActivity$4.onComplete(RegisterActivity.java:138)
        at com.google.android.gms.tasks.zzj.run(Unknown Source:4)
        at android.os.Handler.handleCallback(Handler.java:790)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:192)
        at android.app.ActivityThread.main(ActivityThread.java:6711)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:826)
错误

reference.child(currentUser.getUid()).setValue(userInformation).addOnSuccessListener(新OnSuccessListener(){

这是RegisterActivity.java

public class RegisterActivity extends AppCompatActivity {

    private EditText nameEdit, emailEdit, phoneEdit, passwordEdit;
    private Button loginBtn, signupBtn;

    private static final String TAG = "SignUpActivity";
    String defaultImage = "https://firebasestorage.googleapis.com/v0/b/earning-app-27780.appspot.com/o/woman.png?alt=media&token=4d66f140-4bd9-4a25-9838-cca28ebf48bb";

    private FirebaseDatabase userinfoDatabase;
    private DatabaseReference reference;
    private FirebaseAuth mAuth;
    private FirebaseUser currentUser;
    private SweetAlertDialog sweetAlertDialog;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_register);

        nameEdit = findViewById(R.id.nameEditSignup);
        emailEdit = findViewById(R.id.emailEditSignup);
        phoneEdit = findViewById(R.id.phoneEditSignup);
        passwordEdit = findViewById(R.id.passwordEditSignup);
        loginBtn = findViewById(R.id.loginBtnSignup);
        signupBtn = findViewById(R.id.registerBTn);

        userinfoDatabase = FirebaseDatabase.getInstance();
        reference = userinfoDatabase.getReference("Users");
        mAuth = FirebaseAuth.getInstance();
        currentUser = mAuth.getCurrentUser();

        loginBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
                finish();
            }
        });

        signupBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String name = nameEdit.getText().toString();
                String phone = phoneEdit.getText().toString();

                if (TextUtils.isEmpty(name) && TextUtils.isEmpty(phone)){

                    if (TextUtils.isEmpty(name)){
                        nameEdit.setError("Enter Your Name");
                        nameEdit.requestFocus();
                    }

                    if (TextUtils.isEmpty(phone)){
                        phoneEdit.setError("Enter Your Phone Number");
                        phoneEdit.requestFocus();
                    }

                } else {

                    showRegisterDialog();
                    authenticationListener();

                }
            }
        });


    }

    private void authenticationListener(){

        final String email = emailEdit.getText().toString();
        final String password = passwordEdit.getText().toString();

        if(TextUtils.isEmpty(email) && TextUtils.isEmpty(password)){

            if (TextUtils.isEmpty(email)){
                emailEdit.setError("Enter Your Email");
                emailEdit.requestFocus();
            }
            if (TextUtils.isEmpty(password)){
                passwordEdit.setError("Enter Your Password");
                passwordEdit.requestFocus();
            }

        } else
            mAuth.createUserWithEmailAndPassword(email, password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
                @Override
                public void onComplete(@NonNull Task<AuthResult> task) {

                    RegisterModel userInformation = new RegisterModel();

                    userInformation.setEmail(email);
                    userInformation.setName(nameEdit.getText().toString());
                    userInformation.setPassword(password);
                    userInformation.setPhone(phoneEdit.getText().toString());
                    userInformation.setRupees(0);
                    userInformation.setPoints(0);
                    userInformation.setImage(defaultImage);

                    reference.child(currentUser.getUid()).setValue(userInformation).addOnSuccessListener(new OnSuccessListener<Void>() {
                        @Override
                        public void onSuccess(Void aVoid) {
                            //user registered successfully
                            sweetAlertDialog.dismissWithAnimation();
                            startActivity(new Intent(RegisterActivity.this, LoginActivity.class));
                            finish();

                        }
                    }).addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception e) {
                            //user failed to register
                            sweetAlertDialog.dismissWithAnimation();
                            showRegisterErrorDialog();
                        }
                    });

                }
            }).addOnFailureListener(new OnFailureListener() {
                @Override
                public void onFailure(@NonNull Exception e) {
                    //Error
                    sweetAlertDialog.dismissWithAnimation();
                    showRegisterErrorDialog();
                }
            });

    }
}
公共类注册表活动扩展了AppCompatActivity{
私人编辑文本名称编辑、电子邮件编辑、电话编辑、密码编辑;
专用按钮登录、注册;
私有静态最终字符串TAG=“SignUpActivity”;
字符串defaultImage=”https://firebasestorage.googleapis.com/v0/b/earning-app-27780.appspot.com/o/woman.png?alt=media&token=4d66f140-4bd9-4a25-9838-cca28ebf48bb”;
私有FirebaseDatabase用户信息数据库;
私人数据库参考;
私人消防队;
私有FirebaseUser当前用户;
私人SweetAlertDialog SweetAlertDialog;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u寄存器);
nameEdit=findviewbyd(R.id.nameEditSignup);
emailEdit=findViewById(R.id.emailEditSignup);
phoneEdit=findviewbyd(R.id.phoneEditSignup);
passwordEdit=findviewbyd(R.id.passwordEditSignup);
loginBtn=findviewbyd(R.id.loginBtnSignup);
signupBtn=findviewbyd(R.id.registerBTn);
userinfoDatabase=FirebaseDatabase.getInstance();
reference=userinfoDatabase.getReference(“用户”);
mAuth=FirebaseAuth.getInstance();
currentUser=mAuth.getCurrentUser();
loginBtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
startActivity(新意图(RegisterActivity.this、LoginActivity.class));
完成();
}
});
signupBtn.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图v){
String name=namedit.getText().toString();
字符串phone=phoneEdit.getText().toString();
if(TextUtils.isEmpty(姓名)和&TextUtils.isEmpty(电话)){
if(TextUtils.isEmpty(name)){
setError(“输入您的姓名”);
nameEdit.requestFocus();
}
if(TextUtils.isEmpty(电话)){
设置错误(“输入您的电话号码”);
requestFocus();
}
}否则{
showRegisterDialog();
authenticationListener();
}
}
});
}
私有void authenticationListener(){
最终字符串email=emailEdit.getText().toString();
最终字符串密码=passwordEdit.getText().toString();
if(TextUtils.isEmpty(电子邮件)和&TextUtils.isEmpty(密码)){
如果(TextUtils.isEmpty(电子邮件)){
emailEdit.setError(“输入您的电子邮件”);
emailEdit.requestFocus();
}
if(TextUtils.isEmpty(密码)){
setError(“输入您的密码”);
passwordEdit.requestFocus();
}
}否则
mAuth.createUserWithEmailAndPassword(电子邮件,密码).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
RegisterModel userInformation=新的RegisterModel();
userInformation.setEmail(email);
setName(nameEdit.getText().toString());
userInformation.setPassword(密码);
setPhone(phoneEdit.getText().toString());
用户信息。设置卢比(0);
用户信息。设定点(0);
userInformation.setImage(defaultImage);
reference.child(currentUser.getUid()).setValue(userInformation).addOnSuccessListener(新的OnSuccessListener()){
@凌驾
成功时公开作废(作废避免){
//用户注册成功
sweetAlertDialog.dismissWithAnimation();
startActivity(新意图(RegisterActivity.this、LoginActivity.class));
完成();
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
//用户注册失败
sweetAlertDialog.dismissWithAnimation();
showRegisterErrorDialog();
}
});
}
}).addOnFailureListener(新的OnFailureListener(){
@凌驾
public void onFailure(@NonNull异常e){
//错误
sweetAlertDialog.dismissWithAnimation();
showRegisterErrorDialog();
}
});
}
}

当前用户
为空,表示没有用户登录。在对其调用
getUid()
之前,需要检查此案例。

当前用户
为空,表示没有用户登录。在对其调用
getUid()
之前,需要检查此案例。

以下代码行

String currentUserId;

以下代码行

String currentUserId;

请添加一些详细信息请添加一些详细信息