android - 在 Activity 中使用 FirebaseAuthUI 和 Navigation 组件
问题描述
我正在使用Firebase 预构建的身份验证 UI并使用 Jetpack 导航组件创建一个应用程序。但是,我对如何在我的活动之间导航有点困惑,因为this.findNavController()
需要我将视图资源 ID传递给它(我假设它是我所在的当前视图的 ID?)。如果是这种情况,我将如何获得对 Firebase 预构建身份验证 UI 的引用?还是我误解了这是如何工作的?
对于上下文,我正在尝试从 auth 活动导航到 MapsActivity
在此先感谢您的帮助!
编辑:
我使用我的资源 id尝试了这篇文章中的建议fragmentContainerView
,但没有运气:(map
mapsActivity
firebaseAuthUI
Navigation.findNavController(this, R.id.mapsActivity).navigate(
FirebaseAuthUIDirections.actionFirebaseAuthUIToMapsActivity(user)
)
这是我的 FirebaseAuthUI 活动的代码(请注意以下问题onActivityResult()
:
class FirebaseAuthUI: AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
createSignInIntent()
}
private fun createSignInIntent() {
val providers = arrayListOf(
AuthUI.IdpConfig.GoogleBuilder().build(),
AuthUI.IdpConfig.EmailBuilder().build()
)
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(providers)
.build(),
RC_SIGN_IN
)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == RC_SIGN_IN) {
val response = IdpResponse.fromResultIntent(data)
if (resultCode == Activity.RESULT_OK) {
val user = FirebaseAuth.getInstance().currentUser
this.findNavController().navigate(
FirebaseAuthUIDirections.actionFirebaseAuthUIToMapsActivity(user)
)
} else {
val error = response?.error?.errorCode
Toast.makeText(
this,
"⚠️ Unable to log in. Please contact Support. Error: $error",
Toast.LENGTH_LONG
).show()
}
}
}
解决方案
推荐阅读
- reactjs - 处理表单清除并在成功提交时提交消息 - React
- php - Laravel 格式到小数点后 1 位
- apache-camel - Apache Camel 支持 HDFS 或 Azure Blob FileSystem (Gen2) 中的 parquet
- java - Selenium 中是否有办法通过单击 iFrame 中的按钮来克服 Safari 浏览器的同源策略?
- android - 警报对话框不会通过滑行加载图像
- javascript - 在 dijit 日历中默认禁用星期日
- ios - 整个应用程序的尾随 UILabel 错误开始随机出现
- bash - 一次断开后,Raspberry Pi 无法连接到蓝牙
- python-3.x - 获取非等距信号的最小周期
- node.js - 运行服务时找不到模块'@angular/compiler'