我正在按照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);
}
}
};
}
最佳答案
更新:您现在可以使用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);
资料来源:Firebase UI for Auth
谢谢@Alexey
以下解决方案可以使用,但已不建议使用:
我也遵循相同的教程,并最终在这里寻找解决方案。我试图自己找到一个解决方案,并找到了解决方案。 setProviders()有两种重载方法。已弃用 setProviders(String ... provider)的那个。我使用了 setProviders(List idpConfigs)。下面是代码:
首先创建IdpConfig的List实例,在创建FirebaseDatabase实例的地方执行此操作。换句话说,在所有方法之外和类中执行此操作。
List<AuthUI.IdpConfig> providers;
将其写在您的 onCreate()中:
providers = new ArrayList<>();
然后用以下代码替换您的代码:
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);
}
}
};
你完成了!
祝你有美好的一天 :)