未处理的异常:NoSuchMethodError:在null上调用了方法'addUser'

时间:2020-09-17 15:20:45

标签: android firebase flutter google-cloud-firestore

我正在尝试将Firestore数据库连接到简单的Flutter应用程序。为了测试连通性,我按照Flutter Firestore documentation中的说明添加用户(在我的情况下,每次在“软件”小部件中点击Inkwell时,它都应执行)。

但是,我收到错误:“未处理的异常:NoSuchMethodError:方法'addUser'在null上被调用。” -即使我为其分配了一个值。

我遵循了其他页面上的所有说明,但仍无法解决问题。谁能解决这个问题?如果需要更多信息,请告诉我。

database.dart:

@Indexed(unique=true)

主镖:

import 'package:firebase_core/firebase_core.dart';
import 'package:blitz_shortcuts/main.dart';
import 'package:cloud_firestore/cloud_firestore.dart';

class DatabaseService {
          final String userID;
          DatabaseService(this.userID);
        
          final String fullName = 'XYZ';
        
          // Referenz auf die Firestore Collection herstellen:
        
          final CollectionReference userSoftwareName =
              FirebaseFirestore.instance.collection("userSoftwareName");
        
          Future<void> addUser() async {
            return await userSoftwareName
                .doc(userID)
                .update({"full_name": fullName}).then((value) => print("User Added"));
          }
        }

1 个答案:

答案 0 :(得分:1)

默认情况下,在dart中,如果不进行任何初始化,则所有变量和对象均为null。 你必须创建一个像 DatabaseService database= new DatabaseService(); 因为默认情况下该数据库为空,因为您没有对其进行初始化。

如果不想一次又一次地创建对象,也可以使用单例。