我有一个针对新用户的活动,其中包括3个编辑文本,其中一个用于输入电子邮件地址,设置密码和输入收据编号。在使用Firebase进行注册之前,用户应通过银行付款并使用收据编号在应用中确认付款,当用户单击“注册”按钮时,输入的收据编号将发送到私人服务器,私人服务器将向其发送回ID。所有这些都有效,但是我试图将json响应中的解析ID以及用户输入的电子邮件地址和密码发送到服务类,该服务类的注册方法将在30秒后开始。在注册方法中,将ID发送到服务器进行验证,并在从服务器收到有效的json响应时,使用从主要活动传递的字符串密码和电子邮件地址创建一个新的firebase用户。但是,在将电子邮件地址和密码放入firebase create new user方法的同一行中,我收到了空指针错误。以下是我如何从主要活动中获取电子邮件地址和密码的方法
public Signupservice() {
String a;
String b;
}
......
@Override
public int onStartCommand(Intent intent, int flags , int startId){
a=intent.getStringExtra(FILENAMED);
b=intent.getStringExtra(FILEEXD);
......
firebaseAuth.createUserWithEmailAndPassword(a, b).addOnCompleteListener( new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
Toast.makeText(getApplicationContext(), "signupunsuccessful: " + task.getException().getMessage(), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(),"suucessfull",Toast.LENGTH_SHORT).show();
但是,我从logcat收到以下错误消息,该错误是关于使用电子邮件和密码创建用户的方法的第一行代码的
2019-10-02 20:40:15.539 20184-20184/com.chomba.haroldking.kupa E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.chomba.haroldking.kupa, PID: 20184
java.lang.NullPointerException: Attempt to invoke virtual method 'com.google.android.gms.tasks.Task com.google.firebase.auth.FirebaseAuth.createUserWithEmailAndPassword(java.lang.String, java.lang.String)' on a null object reference
at com.chomba.haroldking.kupa.Signupservice.parseData(Signupservice.java:159)
下面是如何将字符串发送到服务类
Intent startServiceIntent=new Intent(Signupuser.this,Signupservice.class);
startServiceIntent.putExtra(FILENAMED,emailIDfed);
startServiceIntent.putExtra(FILEEX,gce);
startServiceIntent.putExtra(FILENAMEDD,paswdfed);
请提供帮助
firebaseAuth
为空。似乎您在首次使用它之前尚未分配它。确保首先分配它:firebseAuth = FirebaseAuth.getInstance()
。