...如果您不允许多个帐户使用相同的电子邮件地址,则用户无法创建使用电子邮件地址为ex@gmail.com的Google帐户登录的新帐户(如果已有帐户使用该帐户)电子邮件地址ex@gmail.com和密码.
我能够使用Google提供商登录已通过电子邮件提供商注册的同一封电子邮件,因此Google提供商更换了电子邮件提供商,后者无法使用FirebaseAuthInvalidCredentialsException登录:密码无效或用户没有密码..
重现步骤:
使用电子邮件提供商注册 - >注销- >使用Google提供商登录 - >退出
基本上它不应该允许将一个提供者替换为另一个提供者并抛出FirebaseAuthUserCollisionException:该电子邮件地址已被另一个帐户使用.
我用于登录/注销的一些代码:
public void signUpEmail(String email, String password) {
mFirebaseAuth.createUserWithEmailAndPassword(email, password)
.addOnCompleteListener(this, task -> {
if (!task.isSuccessful()) {
Log.e("signUpWithEmail", task.getException());
}
});
}
private void firebaseAuthWithGoogle(GoogleSignInAccount acct) {
AuthCredential credential = GoogleAuthProvider.getCredential(acct.getIdToken(), null);
mFirebaseAuth.signInWithCredential(credential)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override public void onComplete(@NonNull Task<AuthResult> task) {
if (!task.isSuccessful()) {
Log.e("signInWithCredential", task.getException());
}
}
});
}
public void signInEmail(String email, String password) {
mFirebaseAuth.signInWithEmailAndPassword(email, password) …Run Code Online (Sandbox Code Playgroud) 将Firebase 2.4 ref.updateChildren()与HashMap一起使用时,除了HashMap<String, Object>(例如HashMap<String, User>)获取IllegalStateException之外.
> 09-29 18:03:21.680: E/AndroidRuntime(6863): FATAL EXCEPTION: main
> 09-29 18:03:21.680: E/AndroidRuntime(6863): Process:
> com.xxx.xxx.xxx, PID: 6863 09-29
> 18:03:21.680: E/AndroidRuntime(6863): java.lang.IllegalStateException:
> Could not execute method of the activity 09-29 18:03:21.680:
> E/AndroidRuntime(6863): at
> android.view.View$1.onClick(View.java:4035) 09-29 18:03:21.680:
> E/AndroidRuntime(6863): at
> android.view.View.performClick(View.java:4881) 09-29 18:03:21.680:
> E/AndroidRuntime(6863): at
> android.view.View$PerformClick.run(View.java:19592) 09-29
> 18:03:21.680: E/AndroidRuntime(6863): at
> android.os.Handler.handleCallback(Handler.java:733) 09-29
> 18:03:21.680: E/AndroidRuntime(6863): at
> android.os.Handler.dispatchMessage(Handler.java:95) 09-29
> 18:03:21.680: E/AndroidRuntime(6863): at
> …Run Code Online (Sandbox Code Playgroud) 我们想在我们的一个项目中使用iTextSharp DLL来提取PDF文本,但我有第二个想法将它发布到生产中,因为我读到某个地方我们需要为我们购买商业许可才能使用iTexttSharp.这是真的?我们只会消耗DLL,我们不会改变任何东西,我们还需要购买许可吗?
提前致谢!