Articles of google signin

令牌nullloginGoogle帐户

我正在按照谷歌的例子来获得令牌,但没有成功。 总是无法获得令牌。 这是Google在您的页面开发者上显示的最新方式。我相信这个错误不在我的代码中 private String CLIENTE_ID = "…apps.googleusercontent.com"; GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken(CLIENTE_ID) .requestEmail() .build(); // Build GoogleAPIClient with the Google Sign-In API and the above options. mGoogleApiClient = new GoogleApiClient.Builder(this) .enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */) .addApi(Auth.GOOGLE_SIGN_IN_API, gso) .build(); imgBGoogle.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent signInIntent = […]

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

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

无声的谷歌login在Android的后台服务

我在我的android应用程序中运行后台服务。 我使用从login活动获得的IdToken在后端服务器进行身份validation。 该服务正在以START_STICKY模式运行,因此即使closures该应用程序,该服务也会继续在后台运行,以便从后端服务器获取任何通知。 我面临的问题是当IdToken过期时,我无法在服务本身中更新它。 如果令牌已过期,则callback函数不会收到任何结果。 如果令牌尚未过期,则会立即得到结果。 这里是signIn函数和handleSignIn函数的代码。 private void signIn() { new Thread(new Runnable() { public void run() { GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .requestIdToken("<My server_client_id>") .build(); GoogleApiClient mGoogleApiClient = new GoogleApiClient.Builder(context) .addApi(Auth.GOOGLE_SIGN_IN_API, gso) .build(); OptionalPendingResult<GoogleSignInResult> opr = Auth.GoogleSignInApi.silentSignIn (mGoogleApiClient); if (opr.isDone()) { // If the user's cached credentials are valid, the OptionalPendingResult will […]

Googlelogin无法使用

我正在关注Google的 Google Sign 文档 。 我打电话时有一个奇怪的问题 Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent (mGoogleApiClient); startActivityForResult (signInIntent, RC_SIGN_IN); 它似乎意图已被解雇,但我不能看到账户select器对话框 。 我在用 compile "com.google.android.gms:play-services-auth:9.6.1" 当我检查googleclient对象是否连接时,它返回true。 它在一些设备上工作,但不是在每个设备上(尤其是小米) 履行 @OnClick (R.id.google_singin_button) void signInButtonClicked () { HashMap<String, Object> map = new HashMap<> (); map.put (AllAnalytics.LABEL, AllAnalytics.Label.SIGN_IN_GOOGLE); map.put (AllAnalytics.ACTION, AllAnalytics.Action.CLICK); map.put (AllAnalytics.CATEGORY, AllAnalytics.Category.REGISTRATION_SCREEN); aa.analyticsEventOccur (map); if (null != mGoogleApiClient) { // Log.e(TAG,mGoogleApiClient.isConnected()+""); Intent signInIntent […]

Googlelogin应用程序,而不用将其添加到设备帐户中

我们已经通过WebView使用Google SignIn,但是Google很快就会弃用这个function,有没有其他办法可以做到这一点? 我们有一个稍微特殊的用例,我们的设备在仓库中使用,一个设备被多个用户使用。 我们不希望所有用户都将其帐户添加到每个设备。 这似乎是一个相当合理的用例,但我似乎无法find像这样的案件的官方文档。 有没有解决这个问题? 更新:这里是更详细的用例。 想像一下500名员工的100台设备。 没有一个用户有专门的设备。 每天早上,他们走进来,在接下来的几个小时内发出一个随机的设备。 然后,他们需要通过G Suite SSOlogin到我们预先安装的应用程序,完成工作并在退出后返回设备。 现在,我们通过webview实现SSO,因为我们不希望每个员工每天都在设备上设置一个Google帐户。 有了这个新系统,我们没有其他select,只能请低技术的工人来设置包括同步选项在内的完整设备。 我们仍然希望使用来自G Suite帐户的Google SSO,但不希望将帐户链接到设备本身。

获取'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 […]

Android:GoogleAuthUtil.getToken – 帐户对象应该从哪里来?

GoogleAuthUtil.getToken要求为它的第二个参数一个帐户对象,但是当你连接到Google SignIn时,你得到的结果是一个GoogleSignInAccount – 这不是一回事。 有没有办法将GoogleSignInAccount转换为Account对象? private void handleSignInResult(GoogleSignInResult result) { if (result.isSuccess()) { googleSignInAccount = result.getSignInAccount(); } } 那么稍后: authToken = GoogleAuthUtil.getToken(context, [need an account here], scope); 我知道我可以通过显示accountpicker来获取电子邮件地址,也可以从Googlelogin结果中获取电子邮件地址 – 但是我看不到一个获取整个帐户对象的方法。

来自GoogleSignInOptions Android的requestEmail时发生INTERNAL_ERROR

我正在按照谷歌的说明添加用谷歌buttonlogin到我的应用程序。 如果我请求login没有requestEmail() GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .build(); 它返回成功的结果。 但是,如果我要求电子邮件,它发生了一个INTERNAL_ERROR作为状态。 GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestEmail() .build(); 回报 E/Result: Status{statusCode=INTERNAL_ERROR, resolution=null} 我被困在这里 任何帮助高度赞赏。 如果您需要关于代码的更多信息,请发表评论。 谢谢

Firebase会覆盖使用Google帐户login

在文档中似乎没有提到这一点,我发现的只是这个和这个 ,我想在这里确认一下: 如果存在具有相同电子邮件地址但是使用其他凭证(例如密码或不可信提供者)创build的现有账户,则出于安全原因移除先前的凭证。 如果用户通过Facebook或电子邮件/密码login,然后通过Googlelogin,则其帐户login方法将转换为Google。 它只发生在谷歌和只有一个帐户的设置是活动的。 它是打算如此,有什么办法来阻止它?