我已经在第一次启动应用程序时使用谷歌创建了身份验证,并且我有自己的_authenticatedUser存储用户令牌以供进一步请求。
final FirebaseAuth firebaseAuth = FirebaseAuth.instance;
final GoogleSignIn googleSignIn = GoogleSignIn();
Future<String> signInGoogle() async {
GoogleSignInAccount googleSignInAccount = await googleSignIn.signIn();
GoogleSignInAuthentication gsa = await googleSignInAccount.authentication;
FirebaseUser user = await firebaseAuth.signInWithGoogle(
idToken: gsa.idToken, accessToken: gsa.accessToken);
var token = await user.getIdToken();
_authenticatedUser = User(id: user.uid, email: user.email, token: token, photo: user.photoUrl);
SharedPreferences prefs = await SharedPreferences.getInstance();
prefs.setString('loggedin', 'Google');
prefs.setString('token', token);
prefs.setString('userEmail', user.email);
prefs.setString('userId', user.uid);
prefs.setString('userImage', user.photoUrl);
return 'okay';
}
Run Code Online (Sandbox Code Playgroud)
然后我调用getCurrentUser()函数initState()来检查用户是否存在,但是当令牌过期时,我会收到带有过期令牌的错误用户。
Future<FirebaseUser> getCurrentUser() async {
FirebaseUser user …Run Code Online (Sandbox Code Playgroud) 我的调试 APK 工作正常,但从命令构建后发布 APK 无法工作flutter build apk。这里真正的问题是什么?
我有一个名为 firestore 的集合letters,其中包含用户的公开信。在我的应用程序中,当结果转到 时,我使用分页将结果限制为 20 个public letters screen。我担心的是,这在应用程序内可以正常工作,但如果某些恶意用户从邮递员那里查询数据库,那么我将为所有这些读取付费。我已经制定了所有安全规则,例如用户应该经过身份验证,但这需要是公共集合,所以我想不出其他任何东西来限制这一点。如何限制某人一次阅读 20 份左右的文档?
如何在 Flutter 中轻松实现这样的目标?我是否必须为每个框创建多个文本字段并将它们排成一行?我希望用户输入一个数字,就像我们在应用程序的框中输入 OTP 一样。
编辑:假设它是一个七个字母的单词,用户必须将字母一个接一个地拖动到适当的框中,然后根据该文本字段更新如何实现这一点?