我能够使用Google和Facebook成功登录firebase用户:
firebase_auth。飞镖,扑翼_facebook_登录。dart,google_sign_in.dart
我可以使用此功能从不同的小部件注销Firebase用户:
Future<void>_signOut() async {
final FirebaseAuth _firebaseAuth = FirebaseAuth.instance;
return _firebaseAuth.signOut();
}
现在,这是两种登录方式(Google和Facebook)的全部功能,如何确定用户是否是Google auth用户,在这种情况下,我可以执行
final GoogleSignIn _googleSignIn = new GoogleSignIn();
...
_googleSignIn.signOut();
此外,如果我的签出函数在不同的小部件和文件中,我如何传递要引用的GoogleSignIn对象以签出?
GoogleSignIn和FacebookSignIn有一个bool Future类型的方法。
final facebookLogin = FacebookLogin();
final GoogleSignIn googleSignIn = new GoogleSignIn();
googleSignIn.isSignedIn().then((s) {});
facebookLogin.isLoggedIn.then((b) {});
使用此方法,您将得到正确或错误。您可以使用注销方法。对于第二个问题,解决方案是为GoogleSignIn和facebook创建一个全局对象。
import 'dart:async';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:google_sign_in/google_sign_in.dart';
import 'package:flutter_facebook_login/flutter_facebook_login.dart';
final facebookLogin = FacebookLogin();
final FirebaseAuth firebaseAuth = FirebaseAuth.instance;
final GoogleSignIn googleSignIn = new GoogleSignIn();
Future<FirebaseUser> signInWithGoogle() async {
// Attempt to get the currently authenticated user
GoogleSignInAccount currentUser = _googleSignIn.currentUser;
if (currentUser == null) {
// Attempt to sign in without user interaction
currentUser = await _googleSignIn.signInSilently();
}
if (currentUser == null) {
// Force the user to interactively sign in
currentUser = await _googleSignIn.signIn();
}
final GoogleSignInAuthentication googleAuth =
await currentUser.authentication;
// Authenticate with firebase
final FirebaseUser user = await firebaseAuth.signInWithGoogle(
idToken: googleAuth.idToken,
accessToken: googleAuth.accessToken,
);
assert(user != null);
assert(!user.isAnonymous);
return user;
}
Future<Null> signOutWithGoogle() async {
// Sign out with firebase
await firebaseAuth.signOut();
// Sign out with google
await googleSignIn.signOut();
}
问题内容: 我有一个非常简单的问题,但是我没有使用Mysql从SP退出任何简单的代码。谁能和我分享该怎么做? 问题答案:
我被卡住了,无法逃脱。它说: 但当我键入时,它只会出现在对象体中。
问题内容: 用代码退出Java应用程序的最佳方法是什么? 问题答案: 您可以用于此目的。 根据oracle的Java 8文档: 终止当前正在运行的Java虚拟机。参数用作状态码;按照惯例, 非零状态代码表示异常终止 。 此方法在类Runtime中调用exit方法。此方法永远不会正常返回。 该调用实际上等效于该调用:
问题内容: 用于退出的命令是什么?(即终止Node.js进程) 问题答案: 调用全局对象的方法: 从文档: process.exit([code]) 以指定的结束进程。如果省略,则退出使用“成功”代码。 要以“失败”代码退出: 执行节点的外壳程序应将退出代码视为。
问题内容: 有哪些方法可以过早退出子句? 有时候,我在编写代码时希望将一条语句放在子句中,只是要记住,这些语句只能用于循环。 让我们以以下代码为例: 我可以想到一种方法:假设退出情况发生在嵌套的if语句内,请将剩余的代码包装在一个大的else块中。例: 问题是更多的退出位置意味着更多的嵌套/缩进代码。 另外,我可以编写我的代码以使子句尽可能小,并且不需要任何退出。 有人知道退出子句的好/更好的方法
如果您能帮助我完成Java类的任务,我将不胜感激。问题提示如下: 编写一个程序来读取非负整数列表并显示最大整数、最小整数和所有整数的平均值。用户通过输入一个不用于查找最大值、最小值和平均值的负哨兵值来指示输入的结束。平均值应该是双精度类型的值,以便用小数部分计算。 我在代码中遇到的问题是,运行时,循环不会完成,除非输入的第一个值为负值,在这种情况下它返回: 输入的最大数字是:0输入的最小数字是:0