Articles of firebase authentication

“无法获取提供商com.google.firebase.provider.FirebaseInitProvider”错误路径Android

我有一个连接到firebase的应用程序。问题是在设备中安装应用程序(在多个设备上工作)。我阅读了很多论坛,没有人工作。我在这里阅读,等等。谢谢! 错误在这里。 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.dev.ptruck, PID: 8833 java.lang.RuntimeException: Unable to get provider com.google.firebase.provider.FirebaseInitProvider: java.lang.ClassNotFoundException: Didn’t find class “com.google.firebase.provider.FirebaseInitProvider” on path: DexPathList[[zip file “/data/app/com.dev.ptruck-17.apk”],nativeLibraryDirectories=[/data/app-lib/com.dev.ptruck-17, /vendor/lib, /system/lib]] at android.app.ActivityThread.installProvider(ActivityThread.java:5196) at android.app.ActivityThread.installContentProviders(ActivityThread.java:4788) at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4728) at android.app.ActivityThread.access$1500(ActivityThread.java:166) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1343) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:136) at android.app.ActivityThread.main(ActivityThread.java:5584) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:515) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1268) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1084) at dalvik.system.NativeStart.main(Native […]

Firebase android:使用户名唯一

Parse将在年底关闭,所以我决定开始使用Firebase。 我需要实现一个包含3个字段的注册过程:电子邮件,用户名,密码( 电子邮件和用户名对我的应用必须是唯一的)。 由于Firebase没有像Parse那样提供管理用户名的简便方法,因此我决定只使用电子邮件/密码注册并保存一些额外的数据,如用户名。 这是我的用户数据结构: app : { users: { “some-user-uid”: { email: “test@test.com” username: “myname” } } } 但是,我想要做的是使用户名唯一,并在创建帐户之前检查它。 这些是我的规则: { “rules”: { “.read”: true, “.write”: true, “users”: { “$uid”: { “.write”: “auth !== null && auth.uid === $uid”, “.read”: “auth !== null && auth.provider === ‘password'”, “username”: {“.validate”: “!root.child(‘users’).child(newData.child(‘username’).val()).exists()”} } } } } […]

Firebase Android onAuthStateChanged调用了两次

我已开始使用新的Firebase SDK。 当我正在进行用户登录时,我的onAuthStateChanged方法被调用两次,状态相同(等用户登录)。 我确定我只将一次AuthStateListener添加到FirebaseAuth引用中。 有帮助吗?

如何捕获Firebase Auth特定的exception

使用Firebase,如何捕获特定exception并优雅地告诉用户? 例如: FirebaseAuthInvalidCredentialsException:电子邮件地址格式错误。 我正在使用下面的代码使用电子邮件和密码注册用户,但我不是那么高级的java。 mAuth.createUserWithEmailAndPassword(email, pwd) .addOnCompleteListener(this, new OnCompleteListener() { @Override public void onComplete(@NonNull Task task) { if (!task.isSuccessful()) { //H.toast(c, task.getException().getMessage()); Log.e(“Signup Error”, “onCancelled”, task.getException()); } else { FirebaseUser user = mAuth.getCurrentUser(); String uid = user.getUid(); } } });

使用Firebase身份validation进行身份validation后检索Google Access令牌

我正在尝试从经过身份validation的用户(使用Firebase身份validation)检索Google Access令牌以访问Google REST API,例如YouTube Data API 。 我已经在Firebase-UI for Android – Auth库的帮助下成功地在我的应用中集成了Google登录。 从FirebaseUser.getToken()方法检索的令牌不是REST API的有效Google Access令牌。 user.getToken(true).addOnCompleteListener(new OnCompleteListener() { public void onComplete(@NonNull Task task) { if (task.isSuccessful()) { String token = task.getResult().getToken(); // ‘token’ is not a Google Access Token } } }); 在Google Sign-In for Web指南中 ,可以通过调用var token = result.credential.accessToken;来获取访问令牌var token = result.credential.accessToken; ,但我在Android中找不到类似的方法。 有什么输入? […]

升级Firebase后出现OAuth2问题

我有一个工作的Android应用程序(也许更好地说HAD)。 该应用程序正在使用一些第三方库,包括:谷歌地图,Firebase,firebaseui。 转换应用程序使用新的Firebase后,我偶然发现了两个主要问题: firebaseuilogin屏幕改变了,现在看起来像这样(从login对话框变成活动): 这当然是完全不同于旧版本的,也有一些与debugging版本不同的奇怪原因。 我无法使用谷歌login与logcat中显示以下错误: com.google.firebase.FirebaseException:发生内部错误。 [找不到服务器configuration中的OAuth2客户端ID。 ] 在debugging版本中,这个问题不再发生。 只是为了清楚debugging构build变体使用相同的代码库,但不同的firebase数据库。

如何从broadcastreceiver使用firebase数据库

我正在尝试使用来自BroadcastReceiver Firebase数据库来获取一些数据。 不幸的是,用户有时是null ,这意味着我不能使用UID获取数据。 @Override public void onReceive(final Context context, Intent intent) { FirebaseAuth.getInstance().addAuthStateListener(new FirebaseAuth.AuthStateListener() { @Override public void onAuthStateChanged(@NonNull FirebaseAuth firebaseAuth) { FirebaseUser user = firebaseAuth.getCurrentUser(); if(user != null){ //sometimes not null }else{ //sometimes null } } }); } FirebaseAuth.getInstance().getCurrentUser有时也为null 。 另外,我的broadcastreceiver接收机里面没有长时间的运行。 我正在谈论的是在它下面没有任何节点的情况下获取单个opjes。 如何从BroadcastReceiver使用Firebase数据库?

在Play商店发布后,Googlelogin无法使用

我经历了这个过程,就这个过程而言,我做到了。 但是,当我从Play商店安装应用程序时,我无法使用google sign inbuttongoogle sign in 。 我已经使用谷歌loginFirebase。当我点击loginbutton的选项来select帐户即将到来,但它没有login或做任何事情。 那么我哪里可能会出错?

获取'E / TokenRequestor:你有错误的OAuth2相关configuration。 详细的错误:INVALID_AUDIENCE'即使在提供准确的客户端ID之后

我在我的应用程序中提供了GoogleSignIn选项。 这是我的代码: public class SignupActivity extends AppCompatActivity { private static final int RC_SIGN_IN = 1; GoogleApiClient mGoogleApiClient; FirebaseAuth mAuth; TextView appName; ProgressDialog signinProgressDialog; CoordinatorLayout coordinatorLayout; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_signup); // Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); // setSupportActionBar(toolbar); signinProgressDialog = new ProgressDialog(SignupActivity.this); coordinatorLayout = (CoordinatorLayout) findViewById(R.id.signupCoordinatorLayout); // Configure Google Sign In GoogleSignInOptions […]

使用“每个电子邮件地址一个帐户”时FirebaseAuthInvalidCredentialsException

…如果您不允许多个帐户使用同一个电子邮件地址,则用户无法创build一个新帐户,该帐户使用电子邮件地址为ex@gmail.com的Google帐户login(如果已有帐户使用login电子邮件地址ex@gmail.com和一个密码。 我可以通过Google提供商login与通过电子邮件提供商注册的电子邮件相同的电子邮件,因此Google提供商取代了电子邮件提供商,而后者则无法使用FirebaseAuthInvalidCredentialsExceptionlogin:密码无效或用户没有密码。 。 重现步骤: 使用电子邮件提供商 注册 – >退出 – >使用Google提供商 login – >退出 基本上它不应该允许replace另一个提供者,并抛出FirebaseAuthUserCollisionException:该电子邮件地址已被另一个帐户使用。 我用于login/注销的一些代码: 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 […]