[英]how to use firebase authentication instance in viewModel
我是 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 中注入活動是否安全? (據我所知,由於生命周期的原因,我們不應該這樣做)如果不是,我該如何解決問題?
我的問題是:我正在使用 ViewModel。
那不是問題。 這是一個解決方案,因為它允許數據在屏幕旋轉等配置更改后繼續存在。
但是聽眾需要附加到活動或執行者。
如果您使用的是偵聽器,是的,確實如此。 但是由於您使用的是 Kotlin,因此使用Kotlin 協程並使用 await() 暫停 function 直到異步操作完成對我來說更有意義。
在 ViewModel 中注入活動是否安全?
不,這不是關注點分離的工作方式。
在我看來,您擁有的最佳選擇是使用 MVVM 架構模式。 我什至寫了一篇關於這個主題的文章,叫做:
這是關於 Firebase 匿名身份驗證,但相同的規則適用於使用 email 和密碼進行身份驗證的情況。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.