颤振不';t连接到Firebase[NoSuchMethodError],方法';设置…';被调用为空

颤振不';t连接到Firebase[NoSuchMethodError],方法';设置…';被调用为空,firebase,flutter,Firebase,Flutter,如何将android studio中的Flitter应用程序与firebase中的数据库连接?在控制台中运行代码可以在移动SDK上正常工作。但如果将一个项目写入“添加项目”字段,则会出现以下错误: ======== Exception caught by gesture =============================================================== The following NoSuchMethodError was thrown while h

如何将android studio中的Flitter应用程序与firebase中的数据库连接?在控制台中运行代码可以在移动SDK上正常工作。但如果将一个项目写入“添加项目”字段,则会出现以下错误:

======== Exception caught by gesture ===============================================================
The following NoSuchMethodError was thrown while handling a gesture:
The method 'setZigarren' was called on null.
Receiver: null
Tried calling: setZigarren("h", false)

When the exception was thrown, this was the stack: 
#0      Object.noSuchMethod (dart:core-patch/object_patch.dart:51:5)
#1      _humidorState.addZigarren (package:zigarre/humidor.dart:18:14)
#2      _AddItemDialogState.save (package:zigarre/add_item_dialog.dart:19:25)
#3      _InkResponseState._handleTap (package:flutter/src/material/ink_well.dart:993:19)
#4      _InkResponseState.build.<anonymous closure> (package:flutter/src/material/ink_well.dart:1111:38)
...
Handler: "onTap"
Recognizer: TapGestureRecognizer#874b7
  debugOwner: GestureDetector
  state: possible
  won arena
  finalPosition: Offset(193.8, 290.5)
  finalLocalPosition: Offset(41.4, 6.9)
  button: 1
  sent tap down
====================================================================================================

我终于明白了。刚刚不得不重启android studio。它通常太简单了。

您能显示使用“setZigarren”方法的代码部分吗?
import 'package:cloud_firestore/cloud_firestore.dart';

class DatabaseService {

  final String userID;
  DatabaseService(this.userID);

  final CollectionReference userZigarren = Firestore.instance.collection('userZigarren');

  Future setZigarren(String key, bool value) async {
    return await userZigarren.document(userID).setData(
        {key: value}, merge: true);
  }

  Future deleteZigarren(String key) async {
    return await userZigarren.document(userID).updateData({
      key: FieldValue.delete(),
    });
  }

  Future checkIfUserExists() async {
    if ((await userZigarren.document(userID).get()).exists) {
      return true;
    } else {
      return false;
    }
  }
}