Closed GRBurst closed 2 years ago
A major part of getting it to work in most apps is the "X-Goog-Spatula" header, which is used for obtaining the firebase auth tokens in some apps, which requires DroidGuard, so some proprietary parts would be required for the implementation. I don't know if DroidGuard is currently working, but that would have to be considered. Some of my notes on it are here (its a few months old), including some python code for using the Tier app, which requires the Spatula header: https://gist.github.com/Romern/e58e634e4d70b2be5b57d7abdb77f7ef Maybe it helps a bit
Thanks @Romern , this is definitive a starting point 👍
most apps
Can you elaborate on this? Do you know what other apps are using? Maybe I can find it in an official Firebase Auth
documentation.
Furthermore, I only have a rough picture how the communication between micorG
and DroidGuard
works, so I guess I have to look that up, too.
Sorry, this was more of an assumption that most apps use it. I saw it in the Tier app and I remember checking out some other apps using authentication using PhoneAuthProvider. It may be a start to setup the sample app ( https://github.com/firebase/quickstart-android/tree/master/auth ) and record the traffic for the various authentication methods. The header itself is undocumented, I was not able to find it in any (un-)official documentation.
Same here, could not find any documentation about the header in my today's research :-(
Ok, I tried some of the Authentication methods (GoogleSignInActivity, EmalPasswordActivity, PhoneAuthActivity, AnonymousAuthActivity) and edited the requests with Charles to not include the Spatula header, and only PhoneAuthActivity threw an MISSING_CLIENT_IDENTIFIER
error and didn't work. So for a start most authentication methods could be implemented, without the need for the Spatula header.
Yes, that matches my observation that at least most of Firebase Auth should work fine without any special headers. Firebase Auth is based on the Google Identity Toolkit RelyingParty API which has partially public API description and open source client libraries. I'm actually in the process of implementing Firebase Auth these days.
I'm actually in the process of implementing Firebase Auth these days.
I will gladly support you wherever I can @mar-v-in . Please feel free to reach out. I still suggest to make a quick call to align ourselves ;-)
[...] only PhoneAuthActivity threw an MISSING_CLIENT_IDENTIFIER error and didn't work [...]
I saw that in my logs yesterday, too. I am looking into this in more detail with regard to @mar-v-in information right now.
Instead of using the Android PhoneAuth using the Spatula header, you can use the web/js-API with recaptcha, as the phone authentication in the firebase dev console can only be enabled for all platforms: https://firebase.google.com/docs/auth/web/phone-auth .
This works flawlessly with the Tier app (I used this https://github.com/firebase/quickstart-js/tree/master/auth and changed the init.js
using local overrides in chromium).
Initial support for Firebase Auth has landed in c3bfb63f27c116d21ba7b2b87629e36573d4a59e It currently supports
Google Voice Fails to log into during setup with current apk installer and once setup Network Authentication Error connect to Google VOIP server. 1146#issuecomment-720913907
It appears that Tier has blocked the method, web-api atuhentication now throws the error:
{
"error": {
"code": 403,
"message": "Requests from this Android client application \u003cempty\u003e are blocked.",
"errors": [
{
"message": "Requests from this Android client application \u003cempty\u003e are blocked.",
"domain": "global",
"reason": "forbidden"
}
],
"status": "PERMISSION_DENIED"
}
}
and the app does not work anymore (visible and invisible captcha). The pop flow gets past the request for the captcha, but the sms code is not sent.
EDIT: My own Firebase app still works, so it seems to be a single instance where they banned it.
Apparently the pop flow not working the last time I tried was just a fluke, it seems to work fine now. However this seems like a workaround and if they can just block the different methods the longevity of it seems to be a problem.
Yuka is crashing when I click the "Sign in with email" button. (Facebook button is not crashing)
Using a phone with GApps: if I go to the login screen and press the email button, the following activity appears, showing the pop-up with the email.
com.firebase.ui.auth.ui.email.EmailActivity
seems to be loading correctly.
I/FIAM.Headless: went foreground
I/FIAM.Display: Binding to activity: Main.RootActivity
I/FIAM.Headless: Setting display event component
W/AnalyticsUserIDStore: initStore should have been called before calling setUserID
W/UserDataStore: initStore should have been called before calling setUserID
I/FIAM.Headless: Forcing fetch from service rather than cache. Test Device: false | App Fresh Install: true
I/FA: Tag Manager is not found and thus will not be used
I/System: Loaded time zone names for "es_ES" in 72ms (62ms in ICU)
I/FIAM.Headless: Starting InAppMessaging runtime with Installation ID f0a6nE9XSuuNmDK2UyC6VV
I/FIAM.Display: Unbinding from activity: Main.RootActivity
I/FIAM.Headless: Removing display event component
I/FIAM.Headless: Fetching campaigns from service.
W/DynamiteModule: Local module descriptor class for providerinstaller not found.
I/DynamiteModule: Considering local module providerinstaller:0 and remote module providerinstaller:0
W/ProviderInstaller: Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0.
I/FIAM.Display: Binding to activity: com.firebase.ui.auth.KickoffActivity
I/FIAM.Headless: Setting display event component
V/NativeCrypto: Registering com/google/android/gms/org/conscrypt/NativeCrypto's 288 native methods...
I/FIAM.Display: Unbinding from activity: com.firebase.ui.auth.KickoffActivity
I/FIAM.Headless: Removing display event component
I/FIAM.Display: Binding to activity: com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity
I/FIAM.Headless: Setting display event component
I/ProviderInstaller: Installed default security provider GmsCore_OpenSSL
I/FIAM.Headless: Successfully fetched 0 messages from backend
I/FIAM.Display: Unbinding from activity: com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity
I/FIAM.Headless: Removing display event component
I/FIAM.Display: Binding to activity: com.firebase.ui.auth.ui.email.EmailActivity
I/FIAM.Headless: Setting display event component
I/FIAM.Display: Unbinding from activity: com.firebase.ui.auth.ui.email.EmailActivity
I/FIAM.Headless: Removing display event component
If I try the same thing on another phone with microG 0.2.14.204215, the app crashes as soon as I press the email button.
No com.firebase.ui.auth.ui.email.EmailActivity
appears in the logs.
I/FIAM.Headless: went foreground
I/FIAM.Display: Binding to activity: Main.RootActivity
I/FIAM.Headless: Setting display event component
I/FIAM.Headless: Forcing fetch from service rather than cache. Test Device: false | App Fresh Install: true
I/FA: Tag Manager is not found and thus will not be used
I/FIAM.Headless: Starting InAppMessaging runtime with Installation ID epC9IAAuQc6p9-s1usji2q
I/FIAM.Display: Unbinding from activity: Main.RootActivity
I/FIAM.Headless: Removing display event component
I/FIAM.Headless: Fetching campaigns from service.
W/DynamiteModule: Local module descriptor class for providerinstaller not found.
W/DynamiteModule: IDynamite loader version < 2, falling back to getModuleVersion2
D/GmsDynamiteLoaderImpl: unimplemented Method: getModuleVersion for providerinstaller
I/DynamiteModule: Considering local module providerinstaller:0 and remote module providerinstaller:0
W/ProviderInstaller: Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0.
D/GmsProviderInstaller: Initializing provider for io.yuka.android
V/NativeCrypto: Registering com/google/android/gms/org/conscrypt/NativeCrypto's 288 native methods...
D/GmsProviderInstaller: Installed default security provider GmsCore_OpenSSL
I/FIAM.Display: Binding to activity: com.firebase.ui.auth.KickoffActivity
I/FIAM.Headless: Setting display event component
I/FIAM.Display: Unbinding from activity: com.firebase.ui.auth.KickoffActivity
I/FIAM.Headless: Removing display event component
I/BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.a.d@75adc3
I/FIAM.Display: Binding to activity: com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity
I/FIAM.Headless: Setting display event component
I/FIAM.Headless: Successfully fetched 0 messages from backend
I/FIAM.Display: Unbinding from activity: com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity
I/FIAM.Headless: Removing display event component
D/AndroidRuntime: Shutting down VM
E/AndroidRuntime: FATAL EXCEPTION: main
Process: io.yuka.android, PID: 22158
android.content.ActivityNotFoundException: No Activity found to handle null
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2067)
at android.app.Activity.startIntentSenderForResultInner(Activity.java:5583)
at android.app.Activity.startIntentSenderForResult(Activity.java:5549)
at androidx.fragment.app.d.startIntentSenderForResult(FragmentActivity.java:6)
at androidx.core.app.a.x(ActivityCompat.java:2)
at androidx.fragment.app.d.startIntentSenderFromFragment(FragmentActivity.java:6)
at androidx.fragment.app.d$a.q(FragmentActivity.java:1)
at androidx.fragment.app.Fragment.startIntentSenderForResult(Fragment.java:2)
at com.firebase.ui.auth.util.ui.FlowUtils.startIntentSenderForResult(FlowUtils.java:5)
at com.firebase.ui.auth.util.ui.FlowUtils.unhandled(FlowUtils.java:12)
at com.firebase.ui.auth.viewmodel.ResourceObserver.onChanged(ResourceObserver.java:12)
at com.firebase.ui.auth.viewmodel.ResourceObserver.onChanged(ResourceObserver.java:1)
at androidx.lifecycle.LiveData.c(LiveData.java:6)
at androidx.lifecycle.LiveData.d(LiveData.java:5)
at androidx.lifecycle.LiveData$c.e(LiveData.java:10)
at androidx.lifecycle.LiveData$LifecycleBoundObserver.c(LiveData.java:3)
at androidx.lifecycle.k$b.a(LifecycleRegistry.java:3)
at androidx.lifecycle.k.g(LifecycleRegistry.java:9)
at androidx.lifecycle.k.q(LifecycleRegistry.java:9)
at androidx.lifecycle.k.m(LifecycleRegistry.java:5)
at androidx.lifecycle.k.i(LifecycleRegistry.java:2)
at androidx.fragment.app.Fragment.performStart(Fragment.java:7)
at androidx.fragment.app.j.T0(FragmentManagerImpl.java:87)
at androidx.fragment.app.j.Q0(FragmentManagerImpl.java:9)
at androidx.fragment.app.j.R0(FragmentManagerImpl.java:7)
at androidx.fragment.app.j.g0(FragmentManagerImpl.java:2)
at androidx.fragment.app.j.f0(FragmentManagerImpl.java:3)
at androidx.fragment.app.f.q(FragmentController.java:1)
at androidx.fragment.app.d.onStart(FragmentActivity.java:9)
at androidx.appcompat.app.d.onStart(AppCompatActivity.java:1)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435)
at android.app.Activity.performStart(Activity.java:8024)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7657)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:594)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
E/UncaughtException: android.content.ActivityNotFoundException: No Activity found to handle null
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2067)
at android.app.Activity.startIntentSenderForResultInner(Activity.java:5583)
at android.app.Activity.startIntentSenderForResult(Activity.java:5549)
at androidx.fragment.app.d.startIntentSenderForResult(FragmentActivity.java:6)
at androidx.core.app.a.x(ActivityCompat.java:2)
at androidx.fragment.app.d.startIntentSenderFromFragment(FragmentActivity.java:6)
at androidx.fragment.app.d$a.q(FragmentActivity.java:1)
at androidx.fragment.app.Fragment.startIntentSenderForResult(Fragment.java:2)
at com.firebase.ui.auth.util.ui.FlowUtils.startIntentSenderForResult(FlowUtils.java:5)
at com.firebase.ui.auth.util.ui.FlowUtils.unhandled(FlowUtils.java:12)
at com.firebase.ui.auth.viewmodel.ResourceObserver.onChanged(ResourceObserver.java:12)
at com.firebase.ui.auth.viewmodel.ResourceObserver.onChanged(ResourceObserver.java:1)
at androidx.lifecycle.LiveData.c(LiveData.java:6)
at androidx.lifecycle.LiveData.d(LiveData.java:5)
at androidx.lifecycle.LiveData$c.e(LiveData.java:10)
at androidx.lifecycle.LiveData$LifecycleBoundObserver.c(LiveData.java:3)
at androidx.lifecycle.k$b.a(LifecycleRegistry.java:3)
at androidx.lifecycle.k.g(LifecycleRegistry.java:9)
at androidx.lifecycle.k.q(LifecycleRegistry.java:9)
at androidx.lifecycle.k.m(LifecycleRegistry.java:5)
at androidx.lifecycle.k.i(LifecycleRegistry.java:2)
at androidx.fragment.app.Fragment.performStart(Fragment.java:7)
at androidx.fragment.app.j.T0(FragmentManagerImpl.java:87)
at androidx.fragment.app.j.Q0(FragmentManagerImpl.java:9)
at androidx.fragment.app.j.R0(FragmentManagerImpl.java:7)
at androidx.fragment.app.j.g0(FragmentManagerImpl.java:2)
at androidx.fragment.app.j.f0(FragmentManagerImpl.java:3)
at androidx.fragment.app.f.q(FragmentController.java:1)
at androidx.fragment.app.d.onStart(FragmentActivity.java:9)
at androidx.appcompat.app.d.onStart(AppCompatActivity.java:1)
at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435)
at android.app.Activity.performStart(Activity.java:8024)
at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475)
at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7657)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:594)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
I've cleaned the logs taking out the lines that I supposed were not relevant. If you need the full logs or if you want me to try something else, I'll be glad to help.
Yuka is crashing when I click the "Sign in with email" button. (Facebook button is not crashing)
Using a phone with GApps: if I go to the login screen and press the email button, the following activity appears, showing the pop-up with the email.
com.firebase.ui.auth.ui.email.EmailActivity
seems to be loading correctly.I/FIAM.Headless: went foreground I/FIAM.Display: Binding to activity: Main.RootActivity I/FIAM.Headless: Setting display event component W/AnalyticsUserIDStore: initStore should have been called before calling setUserID W/UserDataStore: initStore should have been called before calling setUserID I/FIAM.Headless: Forcing fetch from service rather than cache. Test Device: false | App Fresh Install: true I/FA: Tag Manager is not found and thus will not be used I/System: Loaded time zone names for "es_ES" in 72ms (62ms in ICU) I/FIAM.Headless: Starting InAppMessaging runtime with Installation ID f0a6nE9XSuuNmDK2UyC6VV I/FIAM.Display: Unbinding from activity: Main.RootActivity I/FIAM.Headless: Removing display event component I/FIAM.Headless: Fetching campaigns from service. W/DynamiteModule: Local module descriptor class for providerinstaller not found. I/DynamiteModule: Considering local module providerinstaller:0 and remote module providerinstaller:0 W/ProviderInstaller: Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0. I/FIAM.Display: Binding to activity: com.firebase.ui.auth.KickoffActivity I/FIAM.Headless: Setting display event component V/NativeCrypto: Registering com/google/android/gms/org/conscrypt/NativeCrypto's 288 native methods... I/FIAM.Display: Unbinding from activity: com.firebase.ui.auth.KickoffActivity I/FIAM.Headless: Removing display event component I/FIAM.Display: Binding to activity: com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity I/FIAM.Headless: Setting display event component I/ProviderInstaller: Installed default security provider GmsCore_OpenSSL I/FIAM.Headless: Successfully fetched 0 messages from backend I/FIAM.Display: Unbinding from activity: com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity I/FIAM.Headless: Removing display event component I/FIAM.Display: Binding to activity: com.firebase.ui.auth.ui.email.EmailActivity I/FIAM.Headless: Setting display event component I/FIAM.Display: Unbinding from activity: com.firebase.ui.auth.ui.email.EmailActivity I/FIAM.Headless: Removing display event component
If I try the same thing on another phone with microG 0.2.14.204215, the app crashes as soon as I press the email button.
No
com.firebase.ui.auth.ui.email.EmailActivity
appears in the logs.I/FIAM.Headless: went foreground I/FIAM.Display: Binding to activity: Main.RootActivity I/FIAM.Headless: Setting display event component I/FIAM.Headless: Forcing fetch from service rather than cache. Test Device: false | App Fresh Install: true I/FA: Tag Manager is not found and thus will not be used I/FIAM.Headless: Starting InAppMessaging runtime with Installation ID epC9IAAuQc6p9-s1usji2q I/FIAM.Display: Unbinding from activity: Main.RootActivity I/FIAM.Headless: Removing display event component I/FIAM.Headless: Fetching campaigns from service. W/DynamiteModule: Local module descriptor class for providerinstaller not found. W/DynamiteModule: IDynamite loader version < 2, falling back to getModuleVersion2 D/GmsDynamiteLoaderImpl: unimplemented Method: getModuleVersion for providerinstaller I/DynamiteModule: Considering local module providerinstaller:0 and remote module providerinstaller:0 W/ProviderInstaller: Failed to load providerinstaller module: No acceptable module found. Local version is 0 and remote version is 0. D/GmsProviderInstaller: Initializing provider for io.yuka.android V/NativeCrypto: Registering com/google/android/gms/org/conscrypt/NativeCrypto's 288 native methods... D/GmsProviderInstaller: Installed default security provider GmsCore_OpenSSL I/FIAM.Display: Binding to activity: com.firebase.ui.auth.KickoffActivity I/FIAM.Headless: Setting display event component I/FIAM.Display: Unbinding from activity: com.firebase.ui.auth.KickoffActivity I/FIAM.Headless: Removing display event component I/BiChannelGoogleApi: [FirebaseAuth: ] getGoogleApiForMethod() returned Gms: com.google.firebase.auth.api.a.d@75adc3 I/FIAM.Display: Binding to activity: com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity I/FIAM.Headless: Setting display event component I/FIAM.Headless: Successfully fetched 0 messages from backend I/FIAM.Display: Unbinding from activity: com.firebase.ui.auth.ui.idp.AuthMethodPickerActivity I/FIAM.Headless: Removing display event component D/AndroidRuntime: Shutting down VM E/AndroidRuntime: FATAL EXCEPTION: main Process: io.yuka.android, PID: 22158 android.content.ActivityNotFoundException: No Activity found to handle null at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2067) at android.app.Activity.startIntentSenderForResultInner(Activity.java:5583) at android.app.Activity.startIntentSenderForResult(Activity.java:5549) at androidx.fragment.app.d.startIntentSenderForResult(FragmentActivity.java:6) at androidx.core.app.a.x(ActivityCompat.java:2) at androidx.fragment.app.d.startIntentSenderFromFragment(FragmentActivity.java:6) at androidx.fragment.app.d$a.q(FragmentActivity.java:1) at androidx.fragment.app.Fragment.startIntentSenderForResult(Fragment.java:2) at com.firebase.ui.auth.util.ui.FlowUtils.startIntentSenderForResult(FlowUtils.java:5) at com.firebase.ui.auth.util.ui.FlowUtils.unhandled(FlowUtils.java:12) at com.firebase.ui.auth.viewmodel.ResourceObserver.onChanged(ResourceObserver.java:12) at com.firebase.ui.auth.viewmodel.ResourceObserver.onChanged(ResourceObserver.java:1) at androidx.lifecycle.LiveData.c(LiveData.java:6) at androidx.lifecycle.LiveData.d(LiveData.java:5) at androidx.lifecycle.LiveData$c.e(LiveData.java:10) at androidx.lifecycle.LiveData$LifecycleBoundObserver.c(LiveData.java:3) at androidx.lifecycle.k$b.a(LifecycleRegistry.java:3) at androidx.lifecycle.k.g(LifecycleRegistry.java:9) at androidx.lifecycle.k.q(LifecycleRegistry.java:9) at androidx.lifecycle.k.m(LifecycleRegistry.java:5) at androidx.lifecycle.k.i(LifecycleRegistry.java:2) at androidx.fragment.app.Fragment.performStart(Fragment.java:7) at androidx.fragment.app.j.T0(FragmentManagerImpl.java:87) at androidx.fragment.app.j.Q0(FragmentManagerImpl.java:9) at androidx.fragment.app.j.R0(FragmentManagerImpl.java:7) at androidx.fragment.app.j.g0(FragmentManagerImpl.java:2) at androidx.fragment.app.j.f0(FragmentManagerImpl.java:3) at androidx.fragment.app.f.q(FragmentController.java:1) at androidx.fragment.app.d.onStart(FragmentActivity.java:9) at androidx.appcompat.app.d.onStart(AppCompatActivity.java:1) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435) at android.app.Activity.performStart(Activity.java:8024) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7657) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:594) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947) E/UncaughtException: android.content.ActivityNotFoundException: No Activity found to handle null at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:2067) at android.app.Activity.startIntentSenderForResultInner(Activity.java:5583) at android.app.Activity.startIntentSenderForResult(Activity.java:5549) at androidx.fragment.app.d.startIntentSenderForResult(FragmentActivity.java:6) at androidx.core.app.a.x(ActivityCompat.java:2) at androidx.fragment.app.d.startIntentSenderFromFragment(FragmentActivity.java:6) at androidx.fragment.app.d$a.q(FragmentActivity.java:1) at androidx.fragment.app.Fragment.startIntentSenderForResult(Fragment.java:2) at com.firebase.ui.auth.util.ui.FlowUtils.startIntentSenderForResult(FlowUtils.java:5) at com.firebase.ui.auth.util.ui.FlowUtils.unhandled(FlowUtils.java:12) at com.firebase.ui.auth.viewmodel.ResourceObserver.onChanged(ResourceObserver.java:12) at com.firebase.ui.auth.viewmodel.ResourceObserver.onChanged(ResourceObserver.java:1) at androidx.lifecycle.LiveData.c(LiveData.java:6) at androidx.lifecycle.LiveData.d(LiveData.java:5) at androidx.lifecycle.LiveData$c.e(LiveData.java:10) at androidx.lifecycle.LiveData$LifecycleBoundObserver.c(LiveData.java:3) at androidx.lifecycle.k$b.a(LifecycleRegistry.java:3) at androidx.lifecycle.k.g(LifecycleRegistry.java:9) at androidx.lifecycle.k.q(LifecycleRegistry.java:9) at androidx.lifecycle.k.m(LifecycleRegistry.java:5) at androidx.lifecycle.k.i(LifecycleRegistry.java:2) at androidx.fragment.app.Fragment.performStart(Fragment.java:7) at androidx.fragment.app.j.T0(FragmentManagerImpl.java:87) at androidx.fragment.app.j.Q0(FragmentManagerImpl.java:9) at androidx.fragment.app.j.R0(FragmentManagerImpl.java:7) at androidx.fragment.app.j.g0(FragmentManagerImpl.java:2) at androidx.fragment.app.j.f0(FragmentManagerImpl.java:3) at androidx.fragment.app.f.q(FragmentController.java:1) at androidx.fragment.app.d.onStart(FragmentActivity.java:9) at androidx.appcompat.app.d.onStart(AppCompatActivity.java:1) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435) at android.app.Activity.performStart(Activity.java:8024) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3475) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loop(Looper.java:223) at android.app.ActivityThread.main(ActivityThread.java:7657) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:594) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
I've cleaned the logs taking out the lines that I supposed were not relevant. If you need the full logs or if you want me to try something else, I'll be glad to help.
Same problem with Yuka
Has anyone retried with 0.2.15.204713?
FirebaseUI Auth is still not implemented, which is why Yuka and other apps crash when using it. I added the info to the wiki
I still experience this with firebase email password login in MicroG0.2.17.204714... I own the app it doesn't work in so if any logs are checks are needed lmk
com.google.firebase.auth.api.internal.zzeg could not execute call because it requires feature (firebase_auth_aidl_migration, 1).
[4203] BasicNetwork.performRequest: Unexpected response code 403 for https://www.googleapis.com/identitytoolkit/v3/relyingparty/verifyPassword?key
{
"error": {
"code": 403,
"message": "Requests from this Android client application \u003cempty\u003e are blocked.",
"errors": [
{
"message": "Requests from this Android client application \u003cempty\u003e are blocked.",
"domain": "global",
"reason": "forbidden"
}
],
"status": "PERMISSION_DENIED"
}
}
@dri94 The way MicroG works, is that it uses the Firebase Web-API, so your API key needs to allow for websites to use it. Of course this could potentially be a security concern for certain apps, but if not you can select your API Key in the Google Cloud Console under APIs and Services and remove the "Application restrictions".
@dri94 The way MicroG works, is that it uses the Firebase Web-API, so your API key needs to allow for websites to use it. Of course this could potentially be a security concern for certain apps, but if not you can select your API Key in the Google Cloud Console under APIs and Services and remove the "Application restrictions".
This was in fact the issue. Thanks. Since I own the app I can just enable web services when I need it and restrict the key otherwise
I fixed the issue with Yuka and probably other apps via https://github.com/microg/GmsCore/commit/161c2ffa24725219737d5be9e5b91d279f38c1ed
@mar-v-in Great news! I'll try it with a couple of apps I know, whenever there's a version with these changes, and I'll keep you updated.
Any chance we can get a new release with this commit? I have the same problem with Tandem and would be happy to test it out and report back.
v0.2.19.211515 fixes this for me, thanks a lot!
Would support for service Intent { act=com.google.android.gms.auth.api.signin.service.START pkg=com.google.android.gms }
fall under this issue ?
As required for #1524, #1199, #990, #756, #600, #497, #410, and probably many others.
Is this intent the one that requires that X-Goog-Spatula
header ?
Instead of using the Spatula header in PhoneAuth, recaptcha (recaptchaToken) can be used instead ( firebase.google.com/docs/auth/web/phone-auth )
From what I can see in c3bfb63f that's how that part was implemented.
Anything we can do to help with this ?
Most problems with Firebase auth are already fixed, if needed please open a new ticket.
Hey there,
I use
microG
for many years now and still love it :heart:Sadly, for me, the missing
firebase auth
feature / support is a huge pain. Therefore, I decided to investigate this issue and will spend some time on it. In order to do so, I appreciate some help. I am familiar with android, building android roms and android apps, but I am not familiar with the internal ofmicroG
.As a result, I have some questions / requests:
firebase auth
issue and define tasks to solve it.Furthermore, I suggest making this a collecive issue for all
firebase auth
related problems.Here are some references that may be connected to a
firebase auth
issue (some already have theFirebase Auth
tag):756
809
842
951
1013
1162
Looking forward to hear from you!