我是 Firebase 的新手。我想在我的專案中使用 Firebase 身份驗證。根據 Firebase 檔案,用戶可以使用以下代碼登錄:
auth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener(this) { task ->
if (task.isSuccessful) {
Log.d(TAG, "signInWithEmail:success")
} else {
Log.w(TAG, "signInWithEmail:failure", task.exception)
}
}
并附加了一個監聽器來處理成功登錄或失敗。
我的問題是:
我正在使用視圖模型。所以我在 ViewModel 中實作了這段代碼,但是監聽器需要附加活動或執行器。但我沒有。在 ViewModel 中注入活動是否安全?(據我所知,由于生命周期的問題,我們不應該這樣做)如果沒有,我該如何解決這個問題?
uj5u.com熱心網友回復:
我的問題是:我正在使用 ViewModel。
這不是問題。這是一個解決方案,因為它允許資料在螢屏旋轉等配置更改中保留下來。
但是偵聽器需要附加活動或執行程式。
如果您使用的是偵聽器,則確實如此。但是由于您使用的是 Kotlin,所以對我來說,使用Kotlin 協程并使用 await() 掛起函式直到異步操作完成更有意義。
在 ViewModel 中注入活動是否安全?
不,這不是關注點分離的作業方式。
在我看來,最好的選擇是使用 MVVM 架構模式。我什至寫了一篇關于這個話題的文章,叫做:
- 如何使用 Jetpack Compose 在干凈的架構中處理 Firebase 身份驗證?
這是關于 Firebase 匿名身份驗證,但同樣的規則適用于使用電子郵件和密碼進行身份驗證的情況。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/432525.html
標籤:安卓 火力基地 科特林 谷歌云平台 firebase 身份验证
上一篇:androidx.appcompat.widget.Toolbar不顯示標題
下一篇:如何在改造中制作通用序列化名稱?
