小编Ade*_*ouh的帖子

在 flutter 中使用 firebase 使用 google 登录时如何检查用户是新用户还是现有用户?

我正在开发一个项目,其中用户数据将保存在 Fire 存储中,当用户使用 google 登录时,我正在为用户制作新文档。这是我的代码如下

import 'package:firebase_auth/firebase_auth.dart';
import 'package:gfd_official/User/User.dart';
import 'package:gfd_official/services/database.dart';
import 'package:google_sign_in/google_sign_in.dart';

class GSignInhelp {
 final FirebaseAuth _auth = FirebaseAuth.instance;

 //Firebase User
 Userdat _userFromFirebase(User user) {
 return user != null ? Userdat(uid: user.uid) : null;
 }

 //auth change user stream
 Stream<Userdat> get user {
 return _auth.authStateChanges().map(_userFromFirebase);
}

Future signInWithGoogle() async {
GoogleSignIn googleSignIn = GoogleSignIn();
final account = await googleSignIn.signIn();
final auth = await account.authentication;
final credential = GoogleAuthProvider.credential(
accessToken: auth.accessToken,
idToken: auth.idToken,
);
try {
final res = …
Run Code Online (Sandbox Code Playgroud)

android firebase firebase-authentication flutter

9
推荐指数
2
解决办法
3370
查看次数

可拖动鼠标光标

当可拖动对象在飞行中时,如何使鼠标光标变为?SystemMouseCursors.grabbing

这是我到目前为止所拥有的。

return Draggable(
      data: data,
      onDragCompleted: () {
        setState(() {
          data = widget.create();
        });
      },
      child: MouseRegion(
        cursor: SystemMouseCursors.grab,
        child: child: child,
      ),
      childWhenDragging: MouseRegion(
        cursor: SystemMouseCursors.grabbing,
        child: child,
      ),
      feedback: MouseRegion(
        cursor: SystemMouseCursors.grabbing,
        child: child,
      )
    );
Run Code Online (Sandbox Code Playgroud)

这样,当鼠标悬停而不是拖动时(SystemMouseCursors.grab),如果您不将鼠标从原点​​移动而是抓取(SystemMouseCursors.grabbing),则光标会正确运行。

然而,一旦您将其拖离原点,它就会直接返回到SystemMouseCursors.basic.

如何让光标贯穿SystemMouseCursors.grabbing整个可拖动的飞行?

flutter flutter-web

7
推荐指数
1
解决办法
1100
查看次数

如何访问 Flutter SharedPrefences 中 iOS UserDefaults 存储的数据

iOS商店里已经有一个应用程序,现在计划用新版本将其替换为 Flutter release

我想UserDefaults在 Flutter 代码中访问本机应用程序的数据。

使用我得到的 Flutter 文档中建议的方式null value。我尝试过的是:

在我的pubspec.yaml文件中:

dependencies:
  shared_preferences: ^0.5.12+4
Run Code Online (Sandbox Code Playgroud)

我是我的home.dart类文件,我正在导入标头:

import 'package:shared_preferences/shared_preferences.dart';
Run Code Online (Sandbox Code Playgroud)

iOS这就是我尝试从应用程序访问应用程序中存储的数据的方式native,我在 flutter 项目中使用相同的包 ID (包 ID)来覆盖应用程序,并且它已成功覆盖。

@override
void initState() {
    super.initState();
    getFromLocalMemory('user').then((value) =>
      userInfo = value
  );
}



Future<String> getFromLocalMemory(String key) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    String user = prefs.getString(key);
    return user;
}
Run Code Online (Sandbox Code Playgroud)

它总是返回 null。而“user”键在从 iOS 本机应用程序获取时具有数据。

android nsuserdefaults sharedpreferences ios flutter

7
推荐指数
1
解决办法
4236
查看次数

flutter_bloc 中的超级构造函数如何工作

Dart,我理解super这样的工作原理:

class Foo {
  Foo(int a, int b) {
    //Code of constructor
  }
}

class Bar extends Foo {
  Bar(int a, int b) : super(a, b);
}
Run Code Online (Sandbox Code Playgroud)

我真的不明白在 的(或)类super中使用时发生了什么。cubitblocsflutter_bloc

例如,我不明白CounterCubit类何时扩展CubitCounterCubit extends Cubit<CounterState>并且该类CounterState可以用作cubit.

class CounterState {
  int counterValue;
  CounterState({@required this.counterValue});
}



class CounterCubit extends Cubit<CounterState> {
  CounterCubit() : super(CounterState(counterValue: 0));
}
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-bloc

6
推荐指数
1
解决办法
999
查看次数

如何在 flutter 中添加多个文本字段并从中获取值

我正在尝试单击“添加更多”来添加多个textformfileds,并尝试Button访问表单提交上所有字段的值。

我没有获得dynamic添加字段的值。

我按照这个网址dynamically添加textformfields

这是我的code

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Dynamic TextFormFields',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyForm(),
      debugShowCheckedModeBanner: false,
    );
  }
}

class MyForm extends StatefulWidget {
  @override
  _MyFormState createState() => _MyFormState();
}

class _MyFormState extends State<MyForm> {
  final _formKey = GlobalKey<FormState>();
  TextEditingController _nameController;
  TextEditingController _name1Controller;
  static …
Run Code Online (Sandbox Code Playgroud)

dart flutter

1
推荐指数
1
解决办法
1万
查看次数