火力地堡UI - 验证 - 使用自己的布局
问题描述:
是否有可能在的Android用我自己的布局&按钮的火力地堡UI验证?火力地堡UI - 验证 - 使用自己的布局
我基本上要实现在屏幕上我自己选择的身份提供商(谷歌,Facebook等),并从我的点击收听开始根据流量(例如,使用Butterknife):
@OnClick(R.id.login_btn_signInGoogle)
public void signInGoogle(View view) {
// Start google sign in flow <--- This is what I do not know how to do it
}
@OnClick(R.id.login_btn_signInFacebook)
public void signInFacebook(View view) {
// Start facebook sign in flow <--- This is what I do not know how to do it
}
我知道firebase提供了自定义屏幕/主题的可能性,但对我的情况来说还不够。
在最糟糕的情况下,我将不得不使用标准的firebase sdk方法来实现这一点。
答
是的,您可以在Android上使用自己的布局&按钮进行Firebase UI验证。
对于谷歌和Facebook,您可以使用XML文件中提供类似的小部件:
<com.google.android.gms.common.SignInButton
android:id="@+id/btn_google_login"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:background="@color/colorAccent"
android:text="@string/btn_google_login"
android:textColor="@android:color/black" />
<com.facebook.login.widget.LoginButton
android:id="@+id/btn_facebook_login"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:background="@color/colorAccent"
android:text="@string/btn_facebook_login"
android:textColor="@android:color/black"/>
然后你可以使用你的“机器人:ID”上的onClick
执行行动希望你问题的答案。
编辑: 对于谷歌流量:
// Configure sign-in to request the user's ID, email address, and basic
// profile. ID and basic profile are included in DEFAULT_SIGN_IN.
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(Your web_client_id)
.requestEmail()
.build();
btn_google_login = (SignInButton) findViewById(R.id.btn_google_login);
btn_google_login.setSize(SignInButton.SIZE_STANDARD);
btn_google_login.setScopes(gso.getScopeArray());
btn_google_login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//If you want everytime for user to ask the account to select.
mGoogleApiClient.clearDefaultAccountAndReconnect();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent,RC_SIGN_IN);
}
});
答
现在我们所能做的就是接受他们对FirebaseUI布局陈述here。如果我们不喜欢我们必须自己登录。 我真的希望他们在未来提供一些定制。
在我的应用我有一个单独的标志和一个单独的背景,所以当你试图用邮箱注册,标志消失,并注册对话框不与标识干扰,像here 你可以做到这一点.SetTheme和.SetLogo
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setTheme(R.style.FirebaseLoginTheme)
.setLogo(R.drawable.logo)
.setProviders(Arrays.asList(
new AuthUI.IdpConfig.Builder(AuthUI.FACEBOOK_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build(),
new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build()))
.setIsSmartLockEnabled(false)
.build(),
RC_SIGN_IN);
在styles.xml编辑windowBackground您FirebaseLoginTheme:
<style name="FirebaseLoginTheme" parent="FirebaseUI">
<item name="windowNoTitle">true</item>
<item name="windowActionBar">false</item>
<item name="android:windowFullscreen">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@drawable/login</item>
</style>
您可以使用火力地堡自己的UI定制与从该链路流向:https://github.com/火力/ FirebaseUI-的Android /树/主/ auth –