Dart 自颤振后调用云函数时出错

Dart 自颤振后调用云函数时出错,dart,flutter,google-cloud-functions,Dart,Flutter,Google Cloud Functions,我已经创建了云函数,它们可以正常工作(我用postman测试了它们)。当我试图用颤振呼叫他们时,我有一个错误: I/flutter (14755): throwing firebase functions exception I/flutter (14755): caught firebase functions exception I/flutter (14755): INTERNAL I/flutter (14755): Response is missing data field. I/f

我已经创建了云函数,它们可以正常工作(我用postman测试了它们)。当我试图用颤振呼叫他们时,我有一个错误:

I/flutter (14755): throwing firebase functions exception
I/flutter (14755): caught firebase functions exception
I/flutter (14755): INTERNAL
I/flutter (14755): Response is missing data field.
I/flutter (14755): null
I/flutter (14755): null
我补充说

firebase_core: ^0.3.1+1
cloud_functions: ^0.1.2+1
在我的书里

在我的一个dart文件中:

import 'package:youpa/Services/users.services.dart';
[……]

这里是my users.services.dart:

import 'package:cloud_functions/cloud_functions.dart';
import 'package:youpa/Model/user.model.dart';
import 'dart:async';

class UsersService {
  Future<User> searchInAllUsers(String search) async {
    try {
      final dynamic resp = await CloudFunctions.instance.call(
        functionName: 'getUsersBase',
        parameters: <String, dynamic>{
          'txt': search,
          'max': 20,
        },
      );
      print("G : " + resp);
      return resp;
    } on CloudFunctionsException catch (e) {
      print('caught firebase functions exception');
      print(e.code);
      print(e.message);
      print(e.details);
    } catch (e) {
      print('caught generic exception');
      print(e);
    }
  }
}
当我在文本字段中写入或删除一封信时,我在控制台中看到:

I/flutter (14755): throwing firebase functions exception
I/flutter (14755): caught firebase functions exception
I/flutter (14755): INTERNAL
I/flutter (14755): Response is missing data field.
I/flutter (14755): null
I/flutter (14755): null
谢谢,这是事先准备好的。 Jérémy.

尝试使用:

 flutter clean
 cd ios
 pod install
然后再试一次

更新

验证是否正确发送了参数:

    parameters: {
        "data": {
          'txt': search,
          'max': 20,
          },
      },
更新2

通过以下方式修改函数并获取参数:

const { body } = request;
const txt = request.query.txt || body.txt || (body.data && body.data.txt);
const max = request.query.max || body.max || (body.data && body.data.max);
更新3

我想你需要退回这样的东西:

  response.status(200).json({ data: {"your_data_here" }, message: "any_message_if_you_want" });
尝试使用:

 flutter clean
 cd ios
 pod install
然后再试一次

更新

验证是否正确发送了参数:

    parameters: {
        "data": {
          'txt': search,
          'max': 20,
          },
      },
更新2

通过以下方式修改函数并获取参数:

const { body } = request;
const txt = request.query.txt || body.txt || (body.data && body.data.txt);
const max = request.query.max || body.max || (body.data && body.data.max);
更新3

我想你需要退回这样的东西:

  response.status(200).json({ data: {"your_data_here" }, message: "any_message_if_you_want" });

非常感谢,我有新的错误,我编辑了问题。感谢,我测试并检查了你的更新答案,但我有相同的错误(请参见问题中)。这里是我测试云功能的url:检查firebase应用程序中的日志,云功能菜单,选择你的云功能并检查日志感谢,我看到谷歌或邮递员的回答是正确的,而Flitter的函数执行耗时11毫秒,状态为“崩溃”。我已经添加了参数txt和maxconsole.log,当flatter调用函数时,它们是未定义的。如何正确添加参数?谢谢,我有很多新错误,我编辑了问题。谢谢,我测试并检查了你的更新答案,但我有相同的错误(请参见问题中)。这里是我测试云功能的url:检查firebase应用程序中的日志,云功能菜单,选择你的云函数并检查logThank's,我看到谷歌或邮递员的回答是正确的,而Flitter的函数执行耗时11毫秒,状态为“崩溃”。我已经添加了参数txt和maxconsole.log,当flatter调用函数时,它们是未定义的。如何正确添加参数?