CapacitorGoogleAuth
CapacitorGoogleAuth copied to clipboard
I get this error: Error: "GoogleAuth" plugin is not implemented on android
I'm going crazy, I can't find a way to fix it. Does anyone know how to do it?
I have the same problem! Please help!
same
Okay, I resolved this issue I had to update Capacitor to version 3 https://capacitorjs.com/docs/updating/3-0 After I took all the steps, the error disappeared.
Same problem, My capacitor is already in 3.0.0, and the GoogleAuth class is not loaded. Any informations?
yes, you should remove the import of the Google Auth plugin of the MainActivity.java
https://capacitorjs.com/docs/updating/3-0#switch-to-automatic-android-plugin-loading
this means you can comment out / remove the import com.codetrix.....
and also the code inside the BridgeActivity
Make sure that you have installed "@capacitor/cli": "^3.0.1" in the dev dependencies
When you run npx cap sync android, you will see that capacitor now installs all the plugins automatically
I followed all the steps for update from capacitor 2 to 3, but I get the same problem. "GoogleAuth.init()" is not implemented on android.
Yeah, I am having the same problem, and if I remove the init(), it keeps stuck in google form...
"GoogleAuth.init()" is only for WEB (https://github.com/CodetrixStudio/CapacitorGoogleAuth#migrate-from-2-to-3).
For Android and iOS is not necessary. I added a condition for checking that:
import { Device, DeviceInfo } from "@capacitor/device";
import { GoogleAuth } from "@codetrix-studio/capacitor-google-auth";
...
const onSignInGoogle = async () => {
try {
const deviceInfo = await Device.getInfo();
if ((deviceInfo as unknown as DeviceInfo).platform === "web") {
await GoogleAuth.init();
}
const googleUser = (await GoogleAuth.signIn());
...
For the original issue, it worked as commented here: https://github.com/CodetrixStudio/CapacitorGoogleAuth/issues/110
I am doing just like that, but after I choose my Google account, it's always stuck, like this
@FabioGoncalves, what are the logs on the Android Studio or Chrome device Dev tools?
const deviceInfo = await Device.getInfo();
After doing that I'm getting the error: "Device" plugin is not implemented on android
@emtiajium ,
Follow the guide for upgrading Capacitor. It will solve that.
https://capacitorjs.com/docs/updating/3-0
Comment or remove the onCreate
method override. It is not necessary anymore.
Switch to automatic Android plugin loading
In Capacitor 3, it is preferred to automatically load the Android plugins. In MainActivity.java, the onCreate method can be removed. You no longer have to edit this file when adding or removing plugins installed via npm.
public class MainActivity extends BridgeActivity {
// @Override
// public void onCreate(Bundle savedInstanceState) {
// super.onCreate(savedInstanceState);
//
// // Initializes the Bridge
// this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
// // Additional plugins you've installed go here
// add(Plugin1.class);
// add(Plugin2.class);
// }});
// }
}
But for using the GoogleAuth, you need to register it like that:
import android.os.Bundle;
import com.getcapacitor.BridgeActivity;
import com.codetrixstudio.capacitor.GoogleAuth.GoogleAuth;
public class MainActivity extends BridgeActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
registerPlugin(GoogleAuth.class);
}
}
https://capacitorjs.com/docs/updating/3-0#switch-to-automatic-android-plugin-loading
I followed all the steps but I get an error "c.NativePromise is not a function". Please help find solution to this issue and if possible those who have it work can share their knowledge on the steps and possibly share an example github repo to reference. Thanks in advance
@codemickey78,
Give more info about what you are trying to achieve. Where and when does this error happen?
@DercilioFontes
I'm using Ionic Capacitor 3 for my app and I need to authenticate user with Google SignIn. At first, I was using the GooglePlus capacitor plugin which wasn't working but later found out that the CodetrixStudio/CapacitorGoogleAuth was best to integrate.
I used that in my project which worked on iOS without any error but fails on Android with error "c.NativePromise is not a function" which happens to log an error "window.Capacitor.triggerEvent is not a function"
@codemickey78 ,
I don't know. The best I found was that about dev environment using https, but working with http.
https://github.com/ionic-team/capacitor/issues/4056
@DercilioFontes This works on Chrome, but on android was not working: this was like, 4 days ago. Today: Is already working :o, maybe I should've waited π― Thank you, for all the supp guys!
@FabioGoncalves can you please help me solve it?
this is the error I'm getting.
ππ½ππ½ππ½
Do you have capacitor 3? Did you follow all the instructions, put the server_client_id in strings.xml, the google-signin-client_id in index.html and added the plugin in the capacitorConfig.json?
Btw, I answered here https://github.com/CodetrixStudio/CapacitorGoogleAuth/issues/109
Do you have capacitor 3? Did you follow all the instructions, put the server_client_id in strings.xml, the google-signin-client_id in index.html and added the plugin in the capacitorConfig.json?
Btw, I answered here #109
I'm also facing the issue, did everything, it works fine for the Web app and neither does for the Android app. I guess it happens because of the "Authorized JavaScript origins", as it does not allow to set the IP address.
@FabioGoncalves Yes, I'm using Capacitor 3, I have configured everything too.
Check them hereππ½
ππ½

@emtiajium were you able to make it work?
Well, are you sure that the error that you showed is about this plugin? I didn't have any error like that one...
That server_client_id, is this one?
You added the SHA1 in firebase and enabled the google log in?
If so, I am not seeing the problem... the same thing was happening to me, but at least I could choose a google account and then I was stuck in that img that I inserted and that you have to make it too.
@FabioGoncalves Yes, I'm using Capacitor 3, I have configured everything too. Check them hereππ½
ππ½
![]()
@emtiajium were you able to make it work?
I added the key in the XML file that is generated by the Firebase (Android client for com.x.y (auto created by Google Service)
)
BTW, used the other key, (Web client key) for the web app.
So, web app is working and Android app is not
You have to use the same Web client key!!
You have to use the same Web client key!!
Tried with the web client key at the index.html
, strings.xml
and capacitor.config.json
but it produced the same result. When I click the sign-in button, I am able to select the Google user, but after that, it returns me nothing (from the GoogleAuth.signIn()
)
I couldn't figure it out!
Finally I solved it π₯³π₯³π₯³ But when I select the account, I'm stuck at confirmation popup to allow user. On clicking the "Allow" button it loads the same popup again.
Yeah, I was in the same situation, but after 2-3 days when I went check again, it was working... xD
@DercilioFontes
I'm using Ionic Capacitor 3 for my app and I need to authenticate user with Google SignIn. At first, I was using the GooglePlus capacitor plugin which wasn't working but later found out that the CodetrixStudio/CapacitorGoogleAuth was best to integrate.
I used that in my project which worked on iOS without any error but fails on Android with error "c.NativePromise is not a function" which happens to log an error "window.Capacitor.triggerEvent is not a function"
I did not get CodetrixStudio/CapacitorGoogleAuth to work in my project . Instead, I had to change to Ionic Google Plus https://ionicframework.com/docs/native/google-plus. I followed all the instructions and its worked in my Angular-Ionic project. I am using capacitor.
Summarizing it. Install the needed packages and sync it.
npm install cordova-plugin-googleplus
npm install @ionic-native/google-plus
ionic cap sync
Inside app.module import GooglePlus
import { GooglePlus } from '@ionic-native/google-plus/ngx';
and insert it as provider.
In you login page, insert:
import { GooglePlus } from '@ionic-native/google-plus/ngx';
constructor(private googlePlus: GooglePlus) { }
...
this.googlePlus.login({})
.then(res => console.log(res))
.catch(err => console.error(err));
See https://github.com/EddyVerbruggen/cordova-plugin-googleplus#usage for replace empty object inside googlePlus.login()
Create credentials in Console google https://console.cloud.google.com/
You need SHA-1 certificate thumbprint. For this step, run powershell and go to the directory:
C:\Users\your_name_user\.android
. Inside this folder, you will find debug.keystore
file.
Run the following command: keytool -keystore debug.keystore -list -v
You get the SHA-1 certificate fingerprint needed for create the google's credentials.
Once you had create the credentials and you had setup your project, run the project on android emulator or physical device and test it.
Well I have it working on android now with CodetrixStudio/CapacitorGoogleAuth π₯³βπ½ Ready to launch my app ππ₯
What have you done? Just waited? π