如何自定义firebase auth ui

Posted

技术标签:

【中文标题】如何自定义firebase auth ui【英文标题】:How to customize firebase auth ui 【发布时间】:2018-08-17 22:37:29 【问题描述】:

我正在通过号码验证使用 Firebase Auth Ui。我有一些要求,我需要更改国家微调器下拉项目的文本和背景颜色。我正在使用以下样式,但它不会改变下拉菜单的背景颜色或项目的文本颜色。

style name="FirebaseUI.CountrySpinner" parent="Widget.AppCompat.Spinner.Underlined">
    <item name="android:layout_width">wrap_content</item>
    <item name="android:layout_height">wrap_content</item>
    <item name="android:textAppearance">?android:attr/textAppearanceMedium</item>
    <item name="android:dropDownItemStyle">@style/mySpinnerItemStyle</item>
</style>

<style name="mySpinnerItemStyle" parent="@android:style/Widget.Holo.DropDownItem.Spinner">
    <item name="android:textColor">@color/colorVerifyButtonText</item>
</style>

我在这里做错了什么,请帮帮我。

【问题讨论】:

【参考方案1】:

您需要扩展 FirebaseUI 主题并将其传递到构建器选项中。 示例:

<style name="GreenTheme" parent="FirebaseUI">
    <!-- Required for sign-in flow styling -->
    <item name="colorPrimary">@color/material_green_500</item>
    <item name="colorPrimaryDark">@color/material_green_700</item>
    <item name="colorAccent">@color/material_purple_a700</item>

    <item name="colorControlNormal">@color/material_green_500</item>
    <item name="colorControlActivated">@color/material_lime_a700</item>
    <item name="colorControlHighlight">@color/material_green_a200</item>
    <item name="android:windowBackground">@color/material_green_50</item>
</style>

在 Java 中:

startActivityForResult(
    AuthUI.getInstance(this).createSignInIntentBuilder()
        // ...
        .setTheme(R.style.GreenTheme)
        .build());

还有文档:https://github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md#themes

您基本上希望使用您的下拉属性扩展 FirebaseUI 样式。

【讨论】:

这不能回答我的问题。我知道如何自定义 Firebase 用户界面。 确实如此,这就是您自定义 FirebaseUI 的方式?。请阅读我的回复。 您想要设置下拉菜单的样式,对吗?尤其是国家名单之一。在不覆盖布局文件的情况下设置样式的唯一方法是将自定义样式传递给 FirebaseUI 构建器。 这就是我正在做的,它没有效果。检查我写的那个 xml 样式。 不,您需要添加一个样式元素来扩展 FirebaseUI 并且只有下拉属性。

以上是关于如何自定义firebase auth ui的主要内容,如果未能解决你的问题,请参考以下文章

如何验证由createCustomToken()创建的自定义Firebase验证令牌

如何使用 Firebase Auth 将令牌发送回 android

如何将自定义消息添加到 Firebase Google 身份验证弹出窗口?

通过自定义登录到firebase的Flutter应用程序获取:FIRAuthErrorDomain,自定义令牌对应于不同的受众

Firebase自定义令牌php服务器生成错误

Firebase 数据库权限被自定义令牌拒绝