小编Ada*_*ore的帖子

如何使用 MVVM 架构实现 Firebase Google SignIn?

我正在构建一个应用程序,但我目前面临一个问题:我按照谷歌指南在 LoginActivity 中编写了我的 Google/Facebook 登录按钮的所有事件。但是,我不想将业务代码保留在活动中以遵循 MVVM 架构。因此,我如何放置 Firebase 方法(需要活动引用和生命周期回调)?

我试过一个 LoginViewModel 正在工作,但它有对 LoginActivity 的引用

class LoginViewModel(application: Application) : BaseViewModelContext(application) {

    lateinit var auth: FirebaseAuth
    val Tag: String = LoginViewModel::class.java.simpleName;
    val gso: GoogleSignInOptions
    val googleSignInClient: GoogleSignInClient

    init {
        auth = FirebaseAuth.getInstance()
        gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestIdToken(application.getString(R.string.default_client_id))
            .build()

        googleSignInClient = GoogleSignIn.getClient(application, gso)
    }



    fun activityForResultLogin(requestCode:Int, resultCode: Int, data: Intent?, activity: Activity){
        if(requestCode == Constants.RC_SIGN_IN){
            val task = GoogleSignIn.getSignedInAccountFromIntent(data)
            try {
                // Google Sign In was successful, authenticate with Firebase
                val account …
Run Code Online (Sandbox Code Playgroud)

android mvvm kotlin firebase

8
推荐指数
1
解决办法
2388
查看次数

标签 统计

android ×1

firebase ×1

kotlin ×1

mvvm ×1