Android 应用程序在模拟器上运行得非常好,但在我的设备上运行时,它不会';t登录/注册

Android 应用程序在模拟器上运行得非常好,但在我的设备上运行时,它不会';t登录/注册,android,firebase,firebase-authentication,Android,Firebase,Firebase Authentication,我没有太多的信息可以提供,因为我不知道问题是什么。当我在模拟器上运行它时,它工作正常,但当我尝试在我的设备上运行它时,我无法通过登录/注册。这是我的登录码,非常简单,注册码也差不多,所以我不想麻烦发布它: class LoginActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState)

我没有太多的信息可以提供,因为我不知道问题是什么。当我在模拟器上运行它时,它工作正常,但当我尝试在我的设备上运行它时,我无法通过登录/注册。这是我的登录码,非常简单,注册码也差不多,所以我不想麻烦发布它:

class LoginActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_login)

        login_button.setOnClickListener {

            performLogin()

        }

    }


    fun backToRegistration (view : View) {
        val registerIntent = Intent (this, RegisterActivity::class.java)
        startActivity(registerIntent)
    }

    private fun performLogin(){

        val logEmail = login_email.text.toString()
        val logPass = login_password.text.toString()

        Log.d("Main", "email is $logEmail")
        Log.d("Main", "pass is $logPass")

//        Patterns.EMAIL_ADDRESS.matcher(logEmail).matches()  <--- this method was used before for the if statement but I've replaced it as I kept getting the invalid email error for some reason.

        if (logEmail.contains("@") && logEmail.contains(".")) {

            if (logPass.length > 5) {

                FirebaseAuth.getInstance().signInWithEmailAndPassword(logEmail, logPass).addOnCompleteListener {
                    if (it.isSuccessful) {
                        Log.d("Login", "Successfully logged a user in using uid: ${it.result?.user?.uid}")
                        val intent = Intent(this, MainActivity::class.java)
                        intent.flags = Intent.FLAG_ACTIVITY_CLEAR_TASK.or(Intent.FLAG_ACTIVITY_NEW_TASK)
                        startActivity(intent)
                        return@addOnCompleteListener
                    }
                    //else if successful
                    Log.d("Login", "Failed to log in a user")

                }.addOnFailureListener {
                    Log.d("Main", "Failed to create user : ${it.message}")
                }
            } else {
                Toast.makeText(this, "Your password needs to be at least 6 characters long", Toast.LENGTH_LONG)
                    .show()
            }


        } else {
            Toast.makeText(this, "Please enter a valid email address", Toast.LENGTH_LONG).show()
        }

    }


}

对于任何面临同样问题的人,根据你的情况,这里有两种可能的解决方案

  • 如果你的应用程序在app store上,并且你遇到了这个问题,请参阅发布的答案Thank you@Swati,感谢你将其提交给我

  • 如果您只是尝试在手机上运行它以进行测试,请确保您在Firebase项目中提供了SHA证书指纹。如果您不确定这意味着什么,请转到项目设置->常规和SHA证书指纹 应该在“你的应用”下

  • 您需要同时输入SHA-1和SHA-256

    要让他们进入你的Android项目,点击窗口右上角的“Gradle”选项卡(使用windows,不确定mac)

    然后导航到您的项目->应用程序->任务->android并双击“signingReport”


    它应该在您的窗口底部运行一些行,通常是日志猫所在的位置。在这些行中,您可以找到SHA-1和SHA-256。对于面临相同问题的任何人,根据您的情况,这里有两种可能的解决方案

  • 如果你的应用程序在app store上,并且你遇到了这个问题,请参阅发布的答案Thank you@Swati,感谢你将其提交给我

  • 如果您只是尝试在手机上运行它以进行测试,请确保您在Firebase项目中提供了SHA证书指纹。如果您不确定这意味着什么,请转到项目设置->常规和SHA证书指纹 应该在“你的应用”下

  • 您需要同时输入SHA-1和SHA-256

    要让他们进入你的Android项目,点击窗口右上角的“Gradle”选项卡(使用windows,不确定mac)

    然后导航到您的项目->应用程序->任务->android并双击“signingReport”


    它应该在您的窗口底部的日志猫通常所在的位置运行一些行,在这些行中,您会发现SHA-1和SHA-256

    这些日志消息看起来都与Firebase无关。@DougStevenson我知道,我不知道出了什么问题。如果我在模拟器上运行应用程序,我就能够登录并创建新用户,而不会出现任何问题。我给Firebsae贴上了标签,因为我用它来做这些操作,但有些东西不起作用。它不一定与Firebase有关,但据我所知,它可能与基本网络有关。性能要求:意外响应代码400@Swati谢谢,这不是完全的解决方案,但给了我正确的方向!区别在于我的应用程序只是在我的设备上运行,而不是在应用商店上运行。解决方案是将我的SHA-256添加到我的Firebase项目中。这些日志消息看起来都与Firebase无关。@DougStevenson我知道,我不知道出了什么问题。如果我在模拟器上运行应用程序,我就能够登录并创建新用户,而不会出现任何问题。我给Firebsae贴上了标签,因为我用它来做这些操作,但有些东西不起作用。它不一定与Firebase有关,但据我所知,它可能与基本网络有关。性能要求:意外响应代码400@Swati谢谢,这不是完全的解决方案,但给了我正确的方向!区别在于我的应用程序只是在我的设备上运行,而不是在应用商店上运行。解决方案是将我的SHA-256添加到我的Firebase项目中
    2019-03-12 17:23:56.496 730-17078/? E/voice: voice_is_in_call:in_call 0
    2019-03-12 17:23:56.496 730-17078/? E/voice: voice_is_in_call:in_call 0
    2019-03-12 17:23:56.496 730-17078/? E/voice: voice_is_in_call:in_call 0
    2019-03-12 17:23:56.497 730-17078/? E/msm8974_platform: platform_check_backends_match: Invalid snd_device = 
    2019-03-12 17:23:56.497 730-17078/? E/soundtrigger: audio_extn_sound_trigger_update_stream_status: invalid input device 0x0, for event 3
    2019-03-12 17:23:57.290 3268-12575/? E/Volley: [2631] BasicNetwork.performRequest: Unexpected response code 400 for https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?alt=proto&key=AIzaSyDVSMXQ9fymqlaJiaDogQt7i6-5j3xUbmY
    2019-03-12 17:23:57.370 884-1070/? E/libc: Access denied finding property "sys.thermal.para"
    2019-03-12 17:23:58.028 912-976/? E/storaged: getDiskStats failed with result NOT_SUPPORTED and size 0
    2019-03-12 17:23:59.683 730-5610/? E/soundtrigger: audio_extn_sound_trigger_update_stream_status: invalid input device 0x0, for event 2
    2019-03-12 17:24:02.371 884-1070/? E/libc: Access denied finding property "sys.thermal.para"
    2019-03-12 17:24:07.379 884-1070/? E/libc: Access denied finding property "sys.thermal.para"
    2019-03-12 17:24:12.380 884-1070/? E/libc: Access denied finding property "sys.thermal.para"