簡體   English   中英

連接到 Firestore 時出錯:flutter,MissingPluginException

[英]Error Connecting to Firestore: flutter, MissingPluginException

[錯誤:flutter/lib/ui/ui_dart_state.cc(157)] 未處理的異常:MissingPluginException(在通道插件上找不到方法 DocumentReference#setData 的實現。flutter.io/cloud_firestore)

 Future<void> _createJob(BuildContext context) async{
    final database = Provider.of<Database>(context);
    await database.createJob(Job(name: 'Bloging', ratePerHour: 10));

  }
import 'package:flutter/foundation.dart';

class Job{
  Job({@required this.name, @required this.ratePerHour});
  final String name;
  final int ratePerHour;
  Map<String, dynamic> toMap() {
    return{
      'name': name,
      'ratePerHour': ratePerHour,
    };

  }

}
               create: (_) => FirestoreDatabase(uid: user.uid),
               child: JobsPage());
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/foundation.dart';
import 'package:time_tracker/app/models/jobs.dart';
import 'dart:async';

import 'package:time_tracker/servises/api_path.dart';

abstract class Database {
  Future<void> createJob (Job job);
}
class FirestoreDatabase implements Database {
  FirestoreDatabase({@required this.uid}) : assert(uid != null);
  final String uid;

  Future<void> createJob (Job job) async {
    final path = APIPAth.job(uid, 'job_abc');
    final documentReference = Firestore.instance.document(path);
    await documentReference.setData(job.toMap());
  }
}
  static String job (String uid, String jobId) => '/users/$uid/jobs/$jobId';
}

將 firestore 插件添加到pubspec.yaml文件:

dependencies:
  cloud_firestore: ^0.13.5

然后執行以下命令:

從終端:運行 flutter pub get。

或者

從 Android Studio/IntelliJ:單擊 Packages 進入 pubspec.yaml 頂部的操作功能區。

從 VS Code:單擊位於 pubspec.yaml 頂部操作功能區右側的 Get Packages。


在您的代碼更改中:

 final documentReference = Firestore.instance.document(path);
    await documentReference.setData(job.toMap());

進入這個:

 final documentReference = Firestore.instance.collection(path);
    await documentReference.add(job.toMap());

在 Firestore 中,您有:

集合->文檔->集合->文檔

如果你想將數據添加到collection中,那么你需要使用add()方法,該方法將創建一個隨機文檔 ID 並添加數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM