首页 > 解决方案 > 使用 setTosAndPrivacyPolicyUrls 的 Firebase 身份验证不提供可点击的链接

问题描述

我正在使用我能找到的最新实现来遵循firebase 自己的说明

    implementation 'com.facebook.android:facebook-login:12.0.1'
    implementation 'com.facebook.android:facebook-android-sdk:12.0.1'
    implementation 'com.firebaseui:firebase-ui-auth:7.2.0'

我有一个自定义布局,包括:

<TextView
    android:id="@+id/terms_and_conditions"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:autoLink="all"
    android:fontFamily="@font/omnes_light"
    android:gravity="center"
    android:linksClickable="true"
    android:paddingLeft="20dp"
    android:paddingRight="20dp"
    android:paddingBottom="20dp"
    android:textSize="16dp"
    android:text="@string/terms_and_conditions_login"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintLeft_toLeftOf="parent"
    app:layout_constraintRight_toRightOf="parent" />

我也试过交替进出这些线

    android:linksClickable="true"
    android:text="@string/terms_and_conditions_login"

并取出工具:文本行

字符串在哪里

<string name="terms_and_conditions_login">By continuing, you are indicating that you accept\nour <a href="https://www.mycompany.com/terms-conditions/">Terms of Service</a> and <a href="https://www.mycompany.com/privacy-policy/">Privacy Policy</a>.</string>

然后在我的代码中

private fun login() {
    val selectedProviders = mutableListOf<AuthUI.IdpConfig>()
    selectedProviders.add(AuthUI.IdpConfig.GoogleBuilder().build())
    selectedProviders.add(AuthUI.IdpConfig.FacebookBuilder().build())
    selectedProviders.add(AuthUI.IdpConfig.EmailBuilder().build())


    val customLayout = AuthMethodPickerLayout
            .Builder(R.layout.activity_login_init)
            .setGoogleButtonId(R.id.google_button)
            .setFacebookButtonId(R.id.facebook_button)
            .setEmailButtonId(R.id.email_button)
            .setTosAndPrivacyPolicyId(R.id.terms_and_conditions)
            .build()


    val authUi = AuthUI.getInstance().createSignInIntentBuilder()
            .setAuthMethodPickerLayout(customLayout)
            .setAvailableProviders(selectedProviders)
            .setTheme(R.style.AppTheme_NoActionBar)
            .setIsSmartLockEnabled(false)
            .enableAnonymousUsersAutoUpgrade()
            .setTosAndPrivacyPolicyUrls("https://www.mycompany.com/terms-conditions/", "https://www.mycompany.com/privacy-policy/")
            .build()

    signInLauncher.launch(authUi)

}

所以:按钮工作正常,但服务条款底部的文本显示的文本只有蓝色的“隐私政策”字样,没有一个可点击。此外,正如我在进入 Google 登录时在这个问题中所指出的,两个链接都给出错误“没有找到打开此链接的浏览器”

在 facebook 登录中,一个链接有效,一个无效(条款和条件无效)。在电子邮件登录中,两者都可以正常工作。显然,我已经检查了链接,它们在所有正常情况下都很好。

有谁知道如何让它正常工作?

标签: androidfirebasekotlinfirebase-authentication

解决方案


推荐阅读