java - 我不断收到“java.lang.IllegalArgumentException : Given String is empty or null"and it has something to do with auth = FirebaseAuth. getInstance();”

标签 java android firebase firebase-authentication

我正在为 firebase 中的用户注册制作一个简单的应用程序。我添加了两个用于从用户获取电子邮件和密码的 editText 以及用于注册的按钮。我已经添加了一个扩展应用程序的类,用于初始化默认的 firebaseApp。下面添加了所有代码。帮我解决这个错误。

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

        EditText ed_email, ed_pass;
        Button but_signup;

        ProgressBar progressBar;
        FirebaseAuth auth;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            //FirebaseApp.initializeApp(getApplicationContext());
            //Get Firebase auth instance
            auth = FirebaseAuth.getInstance();


            but_signup = (Button) findViewById(R.id.but_login);

            ed_email = (EditText) findViewById(R.id.ed_email);
            ed_pass = (EditText) findViewById(R.id.ed_pass);


            but_signup.setOnClickListener(this);
        }

        @Override
        protected void onResume() {
            super.onResume();
        }

        @Override
        public void onClick(View v) {
            String email = ed_email.getText().toString().trim();
            String password = ed_pass.getText().toString().trim();

            if (TextUtils.isEmpty(email)) {
                Toast.makeText(getApplicationContext(), "Enter email address!", Toast.LENGTH_SHORT).show();
                return;
            }

            if (TextUtils.isEmpty(password)) {
                Toast.makeText(getApplicationContext(), "Enter password!", Toast.LENGTH_SHORT).show();
                return;
            }

            if (password.length() < 6) {
                Toast.makeText(getApplicationContext(), "Password too short, enter minimum 6 characters!", Toast.LENGTH_SHORT).show();
                return;
            }


            //create user
            auth.createUserWithEmailAndPassword(email, password)
                    .addOnCompleteListener(MainActivity.this, new OnCompleteListener<AuthResult>() {
                        @Override
                        public void onComplete(@NonNull Task<AuthResult> task) {
                            Toast.makeText(MainActivity.this, "createUserWithEmail:onComplete:" + task.isSuccessful(), Toast.LENGTH_SHORT).show();

                            if (!task.isSuccessful()) {
                                Toast.makeText(MainActivity.this, "Authentication failed." + task.getException(),
                                        Toast.LENGTH_SHORT).show();
                            } else {
                                startActivity(new Intent(MainActivity.this, MainActivity.class));
                                finish();
                            }
                        }
                    });
        }
    }

FireApp.java

public class FireApp extends Application {
@Override
public void onCreate() {
    super.onCreate();
    FirebaseApp.initializeApp(getApplicationContext());

}}

日志

FATAL EXCEPTION: main
Process: com.skapsdevelopment.firebase, PID: 13582
Theme: themes:{default=overlay:com.resurrectionremix.pitchblack, iconPack:com.baranovgroup.nstyle, fontPkg:com.resurrectionremix.pitchblack, com.android.systemui=overlay:com.resurrectionremix.pitchblack, com.android.systemui.navbar=overlay:com.resurrectionremix.pitchblack}
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.skapsdevelopment.firebase/com.skapsdevelopment.firebase.MainActivity}: java.lang.IllegalArgumentException: Given String is empty or null
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2450)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510)
   at android.app.ActivityThread.-wrap11(ActivityThread.java)
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363)
   at android.os.Handler.dispatchMessage(Handler.java:102)
   at android.os.Looper.loop(Looper.java:148)
   at android.app.ActivityThread.main(ActivityThread.java:5461)
   at java.lang.reflect.Method.invoke(Native Method)
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
   at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
Caused by: java.lang.IllegalArgumentException: Given String is empty or null
   at com.google.android.gms.common.internal.zzac.zzhz(Unknown Source)
   at com.google.android.gms.internal.zzagt$zza$zza.<init>(Unknown Source)
   at com.google.firebase.auth.FirebaseAuth.zzb(Unknown Source)
   at com.google.firebase.auth.FirebaseAuth.<init>(Unknown Source)
   at com.google.android.gms.internal.zzahe.<init>(Unknown Source)
   at com.google.firebase.auth.FirebaseAuth.zzd(Unknown Source)
   at com.google.firebase.auth.FirebaseAuth.zzc(Unknown Source)
   at com.google.firebase.auth.FirebaseAuth.getInstance(Unknown Source)
   at com.skapsdevelopment.firebase.MainActivity.onCreate(MainActivity.java:36)
   at android.app.Activity.performCreate(Activity.java:6251)
   at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1108)
   at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2403)
   at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2510) 
   at android.app.ActivityThread.-wrap11(ActivityThread.java) 
   at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1363) 
   at android.os.Handler.dispatchMessage(Handler.java:102) 
   at android.os.Looper.loop(Looper.java:148) 
   at android.app.ActivityThread.main(ActivityThread.java:5461) 
   at java.lang.reflect.Method.invoke(Native Method) 
   at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
   at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
   at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132) 

请帮我解决这个错误。

最佳答案

当未定义通常称为 Api key 的身份验证 key 字符串时,会发生此错误。因此,请检查 google-services.json 文件并将您的 key 放入 current_key 标记中。然后重新构建项目,以便应用程序使用 api key 。

关于java - 我不断收到“java.lang.IllegalArgumentException : Given String is empty or null"and it has something to do with auth = FirebaseAuth. getInstance();”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40195593/

相关文章:

android - 是否可以将 Android Gradle 插件 3.0.0 与 IntelliJ 一起使用

ios - Firebase 身份验证限制版本

java - 禁用仪器库

java - 如何从父线程获取线程名称?

java - 在 Android 中检索 SharedPreferences

ios - 如何在 iOS objective-c 中将 firebase 时间戳转换为日期?

java - Firestore set() 方法不会将文档插入集合中,除非调用 ApiFuture<WriteResult> 的 get() 方法

java - 附加到 textview 的 "Swipe Detection"出现故障

java - Selenium 找到元素但随机不单击某个元素,尽管在 Firefox 上是这样说的

java - 升级已发布的 Android App 的 minSdk