首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法在隔离内执行Firebase查询

无法在隔离内执行Firebase查询
EN

Stack Overflow用户
提问于 2019-11-30 21:16:25
回答 1查看 937关注 0票数 7

我正在用颤音开发一个应用程序。我想使用隔离来执行一些Firebase查询。但是每次我运行这个应用程序时,我都会看到这个错误,没有显示任何内容。

这是我的代码

代码语言:javascript
复制
class HomePage extends StatefulWidget {
    HomePage({Key key, this.title}) : super(key: key);
    final String title;

    @override
    HomePageState createState() => HomePageState();
 }


class HomePageState extends State<HomePage>{
    Isolate _isolate;
    ReceivePort _receivePort;
    String _data;

  @override
  Widget build(BuildContext context){
    return WillPopScope(
    child: Scaffold(){
     child : Center(child:Text('${_data}'))
     });
  }


 //To start
  void _start() async {
  _receivePort = ReceivePort();
  _isolate = await Isolate.spawn(getData, _receivePort.sendPort);
  _receivePort.listen(_displayData, onDone: () {
     print("done!");
  });
}

 //Display data;
void _displayData(dynamic data) {
  setState(() {
    _data = data;
  });
 }

  static void getData(SendPort sendPort) async{
   var fire = Firestore.instance;
   fire.settings(persistenceEnabled: true); //I get an error here
   fire.document('MODEL/${id}')
    .snapshots()
    .listen((d) {//I get an error here
     sendPort.send(d);
    }
 }
}

 //I call the method _start in the initState
@override
 void initState() {
    _start();
   super.initState();
  }

,这是我得到的错误

未处理异常:E/

(14817):错误:本机函数'Window_sendPlatformMessage‘(4个参数):#0 Window.sendPlatformMessage (dart:ui/window.dart:1133:9) E/Window.sendPlatformMessage (14817):#1 _DefaultBinaryMessenger._sendPlatformMessage _DefaultBinaryMessenger._sendPlatformMessage15) E/ (package:flutter/src/services/platform_channel.dart:309:51) (14817):#2 _DefaultBinaryMessenger.send _DefaultBinaryMessenger.send E/颤振(14817):#3 MethodChannel.invokeMethod MethodChannel.invokeMethod E/颤振(14817):E/颤振(14817):#4 Query.snapshots。(package:cloud_firestore/src/query.dart:61:37) E/颤振(14817):#5 _runGuarded (飞镖:异步/流_能控器。飞镖:805:24)E/颤振(14817):#6 _BroadcastStreamController._subscribe _BroadcastStreamController._subscribe E/颤振(14817):#7 _ControllerStream._createSubscription (飞镖:异步/流_能控器:818:19))E/颤振(14817):E/颤振(14817):#4 (package:cloud_firestore/src/firestore.dart:154:19) E/颤振(14817):E/颤振(14817):#5 HomePageState.getData (package:flutter_app/HelpFile/HomePage.dart:207:10) E/颤振(14817):#8 _StreamImpl.listen (省道: Firestore.settings /Firestore.settings_INPRIN.DAT:472:9) E/颤振(14817):#9 HomePageState.getData (包装:flutter_app/HomePage.Dart:201:10)E/颤振(14817):E/颤振(14817):#10 _startIsolate。(dart:isolate-patch/isolate_patch.dart:308:17) E/颤振(14817):#11 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:172:12)

EN

回答 1

Stack Overflow用户

发布于 2020-10-22 13:23:45

检查这个链接https://firebase.google.com/docs/reference/android/com/google/firebase/FirebaseApp

任何FirebaseApp初始化只能在应用程序的主进程中进行。不支持在主进程以外的进程中使用Firebase,并且可能会导致与资源争用相关的问题。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59120325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档