Firebase -谷歌登录活动,得到这些错误



我正在使用firebase创建一个google登录活动,但在这些行中出现错误,请帮助。

这是活动代码

中的符号
class SignInActivity : AppCompatActivity() {

lateinit var binding: ActivitySignInBinding
private lateinit var auth: FirebaseAuth
private lateinit var googleSignInClient: GoogleSignInClient

private val RC_SIGN_IN: Int = 123
private val TAG = "SignInActivity Tag"

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivitySignInBinding.inflate(layoutInflater)
setContentView(binding.root)

// Configure Google Sign In
val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(getString(R.string.default_web_client_id))
.requestEmail()
.build()
googleSignInClient = GoogleSignIn.getClient(this, gso)
auth = FirebaseAuth.getInstance()
binding.signInButton.setOnClickListener {
signIn()
}
}

//onStart在onCreate之后被调用,这是创建的//如果用户已经登录,他将直接借给主活动,否则//用户将保持登录活动

override fun onStart() {
super.onStart()
val currentUser = auth.currentUser
updateUI(currentUser)
}

private fun signIn() {
val signInIntent = googleSignInClient.signInIntent
startActivityForResult(signInIntent, RC_SIGN_IN)
}

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RC_SIGN_IN) {
val task = GoogleSignIn.getSignedInAccountFromIntent(data)
handleSignInResult(task)
}
}
private fun handleSignInResult(completedTask: Task<GoogleSignInAccount>) {
try {
val account =
completedTask.getResult(ApiException::class.java)!!
Log.d(TAG, "firebaseAuthWithGoogle:" + account.id)
firebaseAuthWithGoogle(account.idToken!!)
} catch (e: ApiException) {
Log.w(TAG, "signInResult:failed code=" + e.statusCode)
}
}
private fun firebaseAuthWithGoogle(idToken: String) {
val credential = GoogleAuthProvider.getCredential(idToken, null)
binding.signInButton.visibility = View.GONE
binding.progressBar.visibility = View.VISIBLE
/* coroutines */   GlobalScope.launch(Dispatchers.IO) {
val auth = auth.signInWithCredential(credential).await()
val firebaseUser = auth.user
withContext(Dispatchers.Main) {
updateUI(firebaseUser)
}
}
}

private fun updateUI(firebaseUser: FirebaseUser?) {
if(firebaseUser != null) {
val user = User(firebaseUser.uid, firebaseUser.displayName, firebaseUser.photoUrl.toString())
val usersDao = UserDao()
usersDao.addUser(user)


val mainActivityIntent = Intent(this, MainActivity::class.java)
startActivity(mainActivityIntent)
finish()
} else {
binding.signInButton.visibility = View.VISIBLE
binding.progressBar.visibility = View.GONE
}
}

}

在这几行中,我得到了4个错误

查看这些错误

这是错误1的原因

这是错误2原因

错误3原因

错误4原因

这是我的用户类代码
data class User ( val uid : String = "" ,
val displayName : String? = "",
val imageUrl : String = "" )

这是userdao类代码

class UserDao {
private val db = FirebaseFirestore.getInstance()
private val usersCollection = db.collection("users")
fun addUser(user: User?) {
user?.let {
/* global scope is a coroutine use for doing process in background thread*/
GlobalScope.launch(Dispatchers.IO) {
usersCollection.document(user.uid).set(it)
}

}
}

您导入了错误的Data类,这就是您看到错误的原因。转到顶部并更改导入器,删除com.google.firebase.firestore.auth.user并添加用户数据类