簡體   English   中英

如何在 viewModel 中使用 firebase 身份驗證實例

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM