小编Ahm*_*rie的帖子

如何初始化提供程序?

我已经在我的应用程序中实现了用于状态管理的 Provider。现在,我需要在加载屏幕后在类中添加一些数据。

我怎么能做到这一点?

stepInfo.addToList = new VaccStep(); // Need to call it one time once screen is loaded.
Run Code Online (Sandbox Code Playgroud)

我试图从 initState 调用这个方法,但它给出了错误!!

class AdminAddVaccination extends StatefulWidget {
  @override
  State createState() => new AdminAddVaccinationState();
}

class AdminAddVaccinationState extends State<AdminAddVaccination> {

  @override
  void initState() {
    super.initState();
    var stepInfo = Provider.of<StepInfo>(context); // ERROR!!
    stepInfo.addToList = new VaccStep(); // ERROR!!
  }

  Widget build(BuildContext context) {
    return new ChangeNotifierProvider(
      builder: (context) => StepInfo(),
      child: ScreenBody(),
    );
  }
}

class ScreenBody extends StatelessWidget {


  @override
  Widget build(BuildContext …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-provider

6
推荐指数
2
解决办法
6193
查看次数

如何调用原生IOS中的Method向Flutter发送数据?

我需要从原生IOS端发送一些数据到dart端。我正在使用 Channel Method 从 IOS 端调用该方法,但我注意到:

颤振侧:

  static const platform = const MethodChannel('samples.flutter.dev/battery');
platform.setMethodCallHandler(myUtilsHandler); // I am calling it in initState

  Future<dynamic> myUtilsHandler(MethodCall methodCall) async {
    print("myUtilsHandler");
    switch (methodCall.method) {
      case "someMethod":
        print(json.decode(methodCall.arguments));
        break;
      case 'someMethod2':
        print("someMethod2");
        break;
      default:
        print("default");
    }
  }
Run Code Online (Sandbox Code Playgroud)

本机IOS端:

let controller: FlutterViewController = window?.rootViewController as! FlutterViewController
    let batteryChannel = FlutterMethodChannel(name: "samples.flutter.dev/battery",binaryMessenger: controller.binaryMessenger)
batteryChannel.invokeMethod("someMethod", arguments: "someValue")
Run Code Online (Sandbox Code Playgroud)

注意:反过来也可以正常工作!

ios dart swift flutter

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

如何从 Cloud Function 中的 Firestore 获取数据?

我需要知道我在这里做错了什么?

我正在从 Flutter 调用这个函数。回调已正确完成,第一次和第二次打印将出现在 Firbase 的“日志”中。但是从“Firestore”中获取未定义!!

这是云函数中的代码:

var functions = require("firebase-functions");
let admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
admin.firestore().settings({ timestampsInSnapshots: true });


exports.storeContact5 = functions.https.onCall((data, context) => {
    // First print is working fine
    console.log('test');
    var recieverId = 'WqHxLoYvRxR9UK8sFJZ9WxTOIE32';
    const check = admin.firestore().collection('users').doc(recieverId).get();
    check.then(testValue => {
        console.log(testValue.data.nickname);
        return true;
    }).catch(err => {
        console.log('Error getting document', err);
    });
    console.log('test2');
    // Return to flutter App (Working fine)
    return {
        repeat_message: 'ok!'
    }
});
Run Code Online (Sandbox Code Playgroud)

Firebase 日志的屏幕截图

在此处输入图片说明

firebase google-cloud-functions google-cloud-firestore

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