Jaw*_*mro 11 android firebase firebase-authentication
我正在按照Udacity的教程开发Firebase android应用程序.
IDE浏览器标记了setProviders方法,经过文档后我无法找到解决方案.有没有办法解决问题.这是代码:
mMessagesDatabaseReference.addChildEventListener(mChildEventListener);
mAuthStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null){
Toast.makeText(MainActivity.this,"You are signed in, Welcome", Toast.LENGTH_SHORT).show();
}else{
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setIsSmartLockEnabled(false)
.setProviders(
AuthUI.EMAIL_PROVIDER,
AuthUI.GOOGLE_PROVIDER
)
.build(),
RC_SIGN_IN);
}
}
};
}
Run Code Online (Sandbox Code Playgroud)
Pul*_*lak 20
更新:您现在可以使用setAvailableProviders()而不是弃用setProviders()
用法示例:
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setAvailableProviders(Arrays.asList(
new AuthUI.IdpConfig.EmailBuilder().build(),
new AuthUI.IdpConfig.GoogleBuilder().build(),
new AuthUI.IdpConfig.FacebookBuilder().build()))
.build(),
RC_SIGN_IN);
Run Code Online (Sandbox Code Playgroud)
谢谢@Alexey
下面的解决方案可以使用但已被弃用:
我也遵循相同的教程,最终在这里寻找解决方案.我试图找到一个解决方案,并找到了解决方案.setProviders()有两种重载方法.与一个setProviders(字符串...提供商)已被弃用.我使用了setProviders(List <IdpConfig> idpConfigs).以下是代码:
首先创建IdpConfig的List实例,在创建FirebaseDatabase实例的位置执行此操作.换句话说,在所有方法之外和课堂内进行此操作.
List<AuthUI.IdpConfig> providers;
Run Code Online (Sandbox Code Playgroud)
在你的onCreate()中写下这个:
providers = new ArrayList<>();
Run Code Online (Sandbox Code Playgroud)
然后用以下代码替换你的代码:
mMessagesDatabaseReference.addChildEventListener(mChildEventListener);
mAuthStateListener = new FirebaseAuth.AuthStateListener() {
@Override
public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) {
FirebaseUser user = firebaseAuth.getCurrentUser();
if (user != null){
Toast.makeText(MainActivity.this,"You are signed in, Welcome", Toast.LENGTH_SHORT).show();
}else {
providers.add(new AuthUI.IdpConfig.Builder(AuthUI.EMAIL_PROVIDER).build());
providers.add(new AuthUI.IdpConfig.Builder(AuthUI.GOOGLE_PROVIDER).build());
startActivityForResult(
AuthUI.getInstance()
.createSignInIntentBuilder()
.setIsSmartLockEnabled(false)
.setProviders(providers)
.build(),
RC_SIGN_IN);
}
}
};
Run Code Online (Sandbox Code Playgroud)
你完成了!祝你有美好的一天 :)
您应该在以下链接中使用setAvailableProviders()而不是setProvidersFirebaseUI示例中显示的内容:https:
//github.com/firebase/FirebaseUI-Android/blob/master/auth/README.md#sign-in-examples
| 归档时间: |
|
| 查看次数: |
5359 次 |
| 最近记录: |