从服务类中执行Firebase身份验证?

问题描述 投票:1回答:1

我有一个针对新用户的活动,其中包括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);

请提供帮助

java android service firebase-authentication
1个回答
1
投票

firebaseAuth为空。似乎您在首次使用它之前尚未分配它。确保首先分配它:firebseAuth = FirebaseAuth.getInstance()

© www.soinside.com 2019 - 2024. All rights reserved.