gpt4 book ai didi

android - SetProviders 方法已标记为已弃用

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:53:52 26 4
gpt4 key购买 nike

我正在按照 Udacity 的教程开发 Firebase android 应用程序。

setProviders 方法被 IDE 标记为弃用,在查阅文档后我无法找到解决方案。有什么办法可以解决问题。这是代码:

    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... providers) 的已弃用。我使用了 setProviders(List < IdpConfig > idpConfigs)。下面是代码:

首先创建一个 IdpConfig 的列表实例,在创建 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);
}
}
};

大功告成!祝你有美好的一天:)

关于android - SetProviders 方法已标记为已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41416450/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com