【问题标题】:Firebase Functions https call does not work on emulatorFirebase Functions https 调用在模拟器上不起作用
【发布时间】:2022-03-14 20:19:45
【问题描述】:

在 firebase 模拟器上执行 https 调用时,我只会收到 FirebaseFunctionException。除 https 调用外,其他所有功能都可以正常工作。在没有模拟器的情况下连接到 firebase 时,一切正常。我在互联网上找不到解决方案,有人可以帮忙吗?

方法调用:

    try {
      HttpsCallable callable =
          FirebaseFunctions.instance.httpsCallable('getBookData');
      final results = await callable.call(parameters);

初始化:

WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();

...

 final localHostString = Platform.isAndroid ? '10.0.2.2' : 'localhost';

    // dotenv.get('HOST_IP');

    FirebaseFunctions.instance
        .useFunctionsEmulator('http://$localHostString', 5001);

    FirebaseFirestore.instance.settings = Settings(
      host: '$localHostString:8080',
      sslEnabled: false,
      persistenceEnabled: false,
    );

    await auth.FirebaseAuth.instance.useEmulator(
        Platform.isAndroid ? 'http://localhost:9099' : 'http://0.0.0.0:9099');
  }

例外:

code:"unavailable"
details:null
message:"UNAVAILABLE"
plugin:"firebase_functions"
stackTrace:#0      StandardMethodCodec.decodeEnvelope (package:flutter/src/services/message_codecs.dart:607:7)
#1      MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:156:18)
<asynchronous suspension>
#2      MethodChannelHttpsCallable.call (package:cloud_functions_platform_interface/src/method_channel/method_channel_https_callable.dart:23:24)
<asynchronous suspension>
#3      HttpsCallable.call (package:cloud_functions/src/https_callable.dart:35:37)
<asynchronous suspension>
#4      BookRequest._requestBooksFromCloudFunction (package:bookR/shared/bookRequest.dart:47:23)
<asynchronous suspension>
#5      BookRequest.getMoreBooksByTitle (package:bookR/shared/bookRequest.dart:23:24)
<asynchronous suspension>
#6      BookRequest.getBookInformationByTitle (package:bookR/shared/bookRequest.dart:37:13)
<asynchronous suspension>
#7      SearchBar.build.<anonymous closure> (package:bookR/widgets/searchBar.dart:34:28)
<asynchronous suspension>
hashCode:439854717
runtimeType:Type (FirebaseFunctionsException)

【问题讨论】:

标签: firebase flutter https google-cloud-functions firebase-tools


【解决方案1】:

我终于明白了! :D 万一将来有人发现:

FirebaseFunctions.instance
        .useFunctionsEmulator('http://$localHostString', 5001);

这会导致错误。正确的版本是:

FirebaseFunctions.instance
        .useFunctionsEmulator('$localHostString', 5001);

现在 erverthing 按预期工作

【讨论】:

    猜你喜欢
    • 2020-10-11
    • 1970-01-01
    • 1970-01-01
    • 2017-09-19
    • 2021-05-11
    • 2021-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多