当前位置: 首页 > 知识库问答 >
问题:

google登录在使用capacitor生成的ionic android移动应用程序上不起作用-异常抛出为10

邓德惠
2023-03-14

我正在为android开发一个ionic应用程序并使用电容器生成它。我想将谷歌登录引入我的应用程序。当我尝试登录时,我得到了错误10。为用于签署应用程序的密钥创建了android的客户端ID。代码如下

import '@codetrix-studio/capacitor-google-auth';
import { AngularFireAuth } from '@angular/fire/auth';
import { AngularFirestore } from '@angular/fire/firestore';
import { Router } from '@angular/router';
import { Subject, ReplaySubject } from 'rxjs';
import { GooglePlus } from '@ionic-native/google-plus/ngx';
import * as firebase from 'firebase';
import { Plugins } from '@capacitor/core';
import { FirebaseApp } from '@angular/fire';
import { Platform } from '@ionic/angular';

signInWithGoogle(): Promise<void> {

        return new Promise((resolve, reject) => {

            this.TESTSubject.next('calling google.login');
            this.google.login({
                webClientId: '<my-client-id-part-from-oogle-developer-dashboard>.apps.googleusercontent.com',
                offline: true, scopes: 'profile email'
            })
            .then(gplusUser => {
                this.TESTSubject.next('gplus user recieved =' + gplusUser.email);
                return this.afa.signInWithCredential(firebase.auth.GoogleAuthProvider.credential(gplusUser.idToken));
            })
            .then(r => {
                this.TESTSubject.next('firebase loin OK ');
                resolve();
            })
            .catch(err => {
                reject(err);
            });
        });

    }

当我在设备上使用它时,我会在调用this.google.login(......时抛出异常。

我使用下面的命令在我的项目目录中使用电容器生成android应用程序


    ionic build && npx cap sync android && ionic capacitor copy android && cd android && gradlew assembleRelease && cd app/build/outputs/apk/release && jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore online-mkt.keystore app-release-unsigned.apk online-mkt-mobileapps
    
    zipalign -v 4 app-release-unsigned.apk mobruk-signed.apk

我已经为此挣扎了好几天了。非常感谢您的帮助。

我的信息如下


    Ionic:
    
       Ionic CLI                     : 5.4.16 (C:\Users\<myname>\AppData\Roaming\npm\node_modules\ionic)
       Ionic Framework               : @ionic/angular 5.0.7
       @angular-devkit/build-angular : 0.803.26
       @angular-devkit/schematics    : 8.3.26
       @angular/cli                  : 8.3.26
       @ionic/angular-toolkit        : 2.2.0
    
    Capacitor:
    
       Capacitor CLI   : 2.2.1
       @capacitor/core : 2.2.1
    
    Cordova:
    
       Cordova CLI       : 9.0.0 (cordova-lib@9.0.1)
       Cordova Platforms : android 8.1.0
       Cordova Plugins   : cordova-plugin-ionic-keyboard 2.2.0, cordova-plugin-ionic-webview 4.2.1, (and 5 other plugins)
    
    Utility:
    
       cordova-res : not installed
       native-run  : not installed
    
    System:
    
       Android SDK Tools : 26.1.1 (C:\Users\<myname>\AppData\Local\Android\Sdk)
       NodeJS            : v10.16.0 (C:\Program Files\nodejs\node.exe)
       npm               : 6.13.1
       OS                : Windows 7

共有2个答案

柴兴贤
2023-03-14

我发现了这个问题。我在我的离子项目中用configs.xml指定了我的包名称。但这并不是我预期的嵌入在我的apk文件中的那个。我通过运行下面的命令找到了它

aapt dump用路径标记我的apk文件

那里的包的名称是io.ionic.starter所以在我的谷歌云控制台中,我删除了android类型的凭据,并重新创建了另一个凭据,将包名称命名为io.ionic.starter.例外不再,它会登录。我不确定为什么包名称没有取自我的configs.xml文件。我没有使用andoid工作室来构建应用程序,我正在使用以下命令在命令提示符下构建应用程序

爱奥尼亚建筑

这可能是configsxml上的包没有嵌入apk的原因。不确定。希望有人能提供一些帮助。感谢马丁抽出时间来帮助我。非常感谢。谢谢

万知
2023-03-14

您是否从firebase控制台添加了sha1指纹?

这里介绍如何从密钥库中获取sha1(密钥库证书的SHA-1指纹)

她的更多信息(https://developers.google.com/android/guides/client-auth)

 类似资料:
  • 我用WebView创建了Android应用程序。当尝试用谷歌登录时,它首先询问用户名和密码,然后屏幕显示‘请关闭此窗口’的信息&什么也没有发生。 用户也未登录。 附注。这对我的移动网站来说是非常好的,它本身就被移植到了Android Webview应用程序上。有人能说出为什么那不起作用吗?我对Android是完全陌生的。

  • 我已经创建了react应用程序,并使用下面提供的okta示例使用okta登录。 https://developer.okta.com/code/react/okta_react/#add-an-openid-connect-client-in-okta 我可以通过输入凭据并点击登录按钮成功地从我的应用程序登录到应用程序。 但是,如果我登录到okta开发帐户,然后如果我导航到我的应用程序,我的应用程

  • 我一步一步地遵循这篇论文:https://richonrails.com/articles/google-authentication-in-ruby-on-rails/我创建了一个全新的rails应用程序来测试。但是我一直得到同样的错误:错误:invalid_request 重定向uri的参数值无效:不允许原始IP地址:http://0.0.0.0:3000/auth/google_oauth2

  • 我最近开始用颤动做窗户。我遵循这个Firebase和flutter教程。在第4讲,我得到了Firebase Auth的错误: Flatter:MissingPluginException(在channel plugins.flatter.io/firebase_auth上找不到方法的实现) 我想问题是因为我在为windows构建。我不知道如何将firebase添加到windows应用程序。谢谢你的

  • 我有一个带有Yarn的Flink集群,使用flink-quickstart-java原型构建一个演示项目。在使用'mvn clean package-pbuild-jar'命令构建fat-jar之后,并使用'flink run-m yar-cluster-yn2./flink-Snapshot-1.0.jar'提交程序,程序会抛出以下异常: 下面是我的演示: 和一些版本信息: FLink版本:1.

  • 我创建了一个从HashMap中删除学生的方法。当id为NULL时,它会抛出一个异常。有人知道它为什么不起作用吗? 公共类应用程序{public static void main(String[]args){ }