在 firebase 身份验证中显示加载(进度)栏 android

showing loading(progress) bar in firebase authentication android

在使用 Firebase Auth 进行身份验证时,我想在加载 data/request 之前显示一个进度条。我试图在 xml 中添加一个进度条,然后在向 FirebaseAuth 发送请求之前将其可见性设置为 VISIBLE。这是应用程序崩溃时的代码

lifecycleScope.launch(Dispatchers.IO) {
                binding.pbLogin.visibility = View.VISIBLE

                FirebaseAuth.getInstance()
                    .signInWithEmailAndPassword(email, password)
                    .addOnSuccessListener {
                        val intent = Intent(this@LoginActivity, MainActivity::class.java)
                        startActivity(intent)
                    }.addOnFailureListener {
                        Toast.makeText(this@LoginActivity, "Wrong Credentials", Toast.LENGTH_SHORT)
                            .show()
                    }
            }

如何在那里显示进度条?

使用 Dispathers.IO 上下文时不能触摸视图。你应该打电话给

binding.pbLogin.visibility = View.VISIBLE

之前

lifecycleScope.launch(Dispatchers.IO)

或者使用 Dispatchers.Main 上下文更改视图的参数:

lifecycleScope.launch(Dispatchers.IO) {
   withContext(Dispatchers.Main) {
       binding.pbLogin.visibility = View.VISIBLE
   }          
}