【问题标题】:I keep getting"java.lang.IllegalArgumentException: Given String is empty or null" and it has something to do with auth = FirebaseAuth.getInstance();"我不断收到“java.lang.IllegalArgumentException:Given String is empty or null”,它与 auth = FirebaseAuth.getInstance(); 有关
【发布时间】:2016-10-22 18:27:11
【问题描述】:

我正在制作一个简单的应用程序,用于在 firebase 中注册用户。我添加了两个用于从用户那里获取电子邮件和密码的 editText 以及用于注册的按钮。我已经添加了一个扩展 Application 用于初始化默认 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());

}}

logcat

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) 

请帮我解决这个错误。

【问题讨论】:

  • 将应用程序类添加到清单中。使用this 而不是getApplicationContext
  • 我已经在 Manifest 文件中添加了。

标签: java android firebase firebase-authentication


【解决方案1】:

当未定义 auth key string (通常称为 Api key)时会出现此错误。所以检查 google-services.json 文件并将你的密钥放在 current_key 标签中。然后重建项目,以便应用程序使用 api 密钥。

【讨论】:

    【解决方案2】:

    我的问题是我的 google_services.json 中的 api_key 值是空的。这是因为firebase为我生成的默认json文件根本没有api_key值,所以我只是手动添加了一个以使其工作。在此处添加随机字符串值将使 codelab 正常工作,但请确保停止当前运行并重建项目,否则 Android Studio 自动运行功能将运行而不更新正在使用的 json 文件。

    您可以从 . /console.firebase.google.com/project --> 你的项目 --> 设置 --> 常规。

    并将其添加到您的 google_services.json current_key

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-24
      • 2017-01-21
      • 2022-12-15
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多