cloud_firestore 0.13.0+1

  • Readme
  • Changelog
  • Example
  • Installing
  • 100

Cloud Firestore Plugin for Flutter #

一个Flutter插件来使用Cloud Firestore API .

pub package

有关其他Firebase产品的Flutter插件,请参阅README.md .

Setup #

要使用此插件:

  1. 使用Firebase控制台 ,将Android应用程序添加到您的项目中:跟随助手,下载生成的google-services.json文件,并将其放在android / app中. 接下来,修改android / build.gradle文件和android / app / build.gradle文件,以添加Firebase助手描述的Google服务插件. 确保您的android/build.gradle文件包含此处所述的maven.google.com .
  2. 使用Firebase控制台 ,将iOS应用程序添加到您的项目中:跟随助手,下载生成的GoogleService-Info.plist文件,使用Xcode打开ios / Runner.xcworkspace,然后在Xcode中将该文件放入ios / Runner中. 不要遵循Firebase助手中名为"添加Firebase SDK"和"添加初始化代码"的步骤.
  3. 添加cloud_firestore您pubspec.yaml文件相关 .

Usage #

import 'package:cloud_firestore/cloud_firestore.dart';

添加一个新的DocumentReference

Firestore.instance.collection('books').document()
  .setData({ 'title': 'title', 'author': 'author' });

CollectionReference绑定到ListView

class BookList extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return StreamBuilder<QuerySnapshot>(
      stream: Firestore.instance.collection('books').snapshots(),
      builder: (BuildContext context, AsyncSnapshot<QuerySnapshot> snapshot) {
        if (snapshot.hasError)
          return new Text('Error: ${snapshot.error}');
        switch (snapshot.connectionState) {
          case ConnectionState.waiting: return new Text('Loading...');
          default:
            return new ListView(
              children: snapshot.data.documents.map((DocumentSnapshot document) {
                return new ListTile(
                  title: new Text(document['title']),
                  subtitle: new Text(document['author']),
                );
              }).toList(),
            );
        }
      },
    );
  }
}

执行查询:

Firestore.instance
    .collection('talks')
    .where("topic", isEqualTo: "flutter")
    .snapshots()
    .listen((data) =>
        data.documents.forEach((doc) => print(doc["title"])));

获取特定文件:

Firestore.instance
        .collection('talks')
        .document('document-name')
        .get()
        .then((DocumentSnapshot ds) {
      // use ds as a snapshot
    });

运行事务:

final DocumentReference postRef = Firestore.instance.document('posts/123');
Firestore.instance.runTransaction((Transaction tx) async {
  DocumentSnapshot postSnapshot = await tx.get(postRef);
  if (postSnapshot.exists) {
    await tx.update(postRef, <String, dynamic>{'likesCount': postSnapshot.data['likesCount'] + 1});
  }
});

Getting Started #

有关使用Cloud Firestore的完整示例应用程序,请参见example目录.

Issues and feedback #

请在我们的问题跟踪器中提交Flutterfire特定的问题,错误或功能请求.

并非Flutterfire特有的插件问题可以在Flutter问题跟踪器中提出 .

要对此插件做出更改,请查看我们的贡献指南 ,并发送请求请求 .

0.13.0+1 #

  • 从pubspec.yaml中删除不推荐使用的author:字段
  • 将插件迁移到pubspec平台清单.
  • 将Flutter的最低版本提高到1.10.0.

0.13.0 #

  • 重大更改删除不建议使用的设置setTimestampsInSnapshotsEnabled . 如果您已经将其设置为true,则只需删除设置即可. 如果将其设置为false,则应更新代码以使用时间戳记.

0.12.11 #

  • 添加了对inarray-contains-any查询运算符的支持.

0.12.10+5 #

  • 移动了上次更改中遗留下来的.gitignore .

0.12.10+4 #

  • 将包移至cloud_firestore/cloud_firestore ,以允许联合实施.

0.12.10+3 #

  • 修复了使用FirebaseApp.channel测试.

0.12.10+2 #

  • 修复了有关未使用字段的分析器警告.

0.12.10+1 #

  • 格式化的方法文档.

0.12.10 #

  • 添加了FieldPath类和FieldPath.documentId以引用查询中的文档ID.
  • 添加了断言和异常,可帮助您构建正确的查询.

0.12.9+8 #

  • 更新了README说明,以与其他Flutterfire插件保持一致.

0.12.9+7 #

  • 删除AndroidX警告.

0.12.9+6 #

  • 将error.code强制转换为long,以避免使用NSInteger作为%ld格式警告.

0.12.9+5 #

  • 修复了在没有互联网连接的情况下运行交易时Android崩溃的问题.

0.12.9+4 #

  • 修复iOS上的整数转换警告.

0.12.9+3 #

  • 更新了Android上用于交易的错误处理,以防止崩溃.

0.12.9+2 #

  • 修复了includeMetadataChanges片状集成测试.

0.12.9+1 #

  • 更新文档以反映新的存储库位置.
  • 更新单元测试以调用TestWidgetsFlutterBinding.ensureInitialized .
  • 删除许可文件上的可执行位.

0.12.9 #

  • 新的可选includeMetadataChanges参数添加到DocumentReference.snapshots()Query.snapshots()
  • Fix example app crash when the message field was not a string
  • 方法名称的内部重命名.

0.12.8+1 #

  • Add metadata to QuerySnapshot.

0.12.8 #

  • 更新了文档ID的生成方式,以更紧密地匹配本机实现.

0.12.7+1 #

  • 在文档和示例中将google-services Android gradle插件更新为4.3.0.

0.12.7 #

  • Transaction不再需要await .
  • Transaction方法添加文档.
  • 删除了Android上不必要的日志.
  • 添加了用于快速增加字段值的集成测试.

0.12.6 #

  • 为支持orderBy地图字段(例如orderBy('cake.flavor')用于startAtDocumentstartAfterDocumentendAtDocument ,和endBeforeDocument加入.

0.12.5+2 #

  • 向Firebase报告使用情况时,自动使用pubspec.yaml中的版本.

0.12.5+1 #

  • 添加了对将Query.startAtDocumentQuery.startAfterDocument中的任何一个与Query.startAtDocumentQuery.startAfterDocument中的任何一个Query.endAtDocument Query.endBeforeDocument .

0.12.5 #

  • 使startAtDocumentstartAfterDocumentendAtDocumentendBeforeDocumentQuery.collectionGroup查询一起使用.
  • 修复了startAtDocumentstartAfterDocumentendAtDocumentendBeforeDocument也可以以降序作为最后的显式排序顺序工作.
  • 通过将cacheSizeBytes的值增加到有效值来修复集成测试.

0.12.4 #

  • 添加了对Query.collectionGroup支持.

0.12.3 #

  • Firestore.settings增加了对cacheSizeBytes支持.

0.12.2 #

  • 确保从Java端到Dart端的所有通道调用都在UI线程上完成. 此更改使事务可以处理即将到来的引擎限制,该限制要求在UI线程上进行频道调用. 请注意,这只是一个Android更改,iOS实施未受影响.
  • 将Firebase报告字符串更新为flutter-fire-fst ,以与其他报告库保持一致.

0.12.1 #

  • Query.getDocuments()DocumentReference.get()添加了对Source支持.

0.12.0+2 #

  • 将最低Flutter版本提高到1.5.
  • 必要时,将invokeMethod替换为invokeMapMethod.

0.12.0+1 #

  • 将用户代理发送到Firebase.

0.12.0 #

  • 突破性的改变 . 修复了CollectionReference.parent以正确返回DocumentReference . 如果以前使用过方法通过collectionReference.parent().id获取父文档的collectionReference.parent().id ,则现在必须使用collectionReference.parent().documentID .
  • Added DocumentReference.parent.

0.11.0+2 #

  • 删除iOS对Firebase / Database和Firebase / Auth CocoaPods的依赖.

0.11.0+1 #

  • 将iOS CocoaPod依赖项更新为"〜> 6.0",以确保对FieldValue.increment支持.

0.11.0 #

  • 将Android依赖项更新为最新版本.

0.10.1 #

  • 支持startAtDocumentstartAfterDocumentendAtDocumentendBeforeDocument .
  • 添加了其他单元和集成测试.

0.10.0 #

  • 支持FieldValue.increment .
  • 从公共API中删除FieldValue.typeFieldValue.value .
  • 附加集成测试.

0.9.13+1 #

  • 添加了对交易的集成测试.

0.9.13 #

  • 删除Gradle BoM以避免Gradle版本问题.

0.9.12 #

  • 将Android依赖项移至Gradle BoM,以帮助维持与其他FlutterFire插件的兼容性.

0.9.11 #

  • 将Android依赖项更新到最新版本.

0.9.10 #

  • 支持在Android上在后台运行的cloud_firestore.
  • 修复了DocumentReference.snapshots()清理中的错误.
  • 附加集成测试.

0.9.9 #

  • 删除invokeMapMethod调用以防止崩溃.

0.9.8 #

  • 将元数据字段添加到DocumentSnapshot.

0.9.7+2 #

  • 将Flutter的最低版本提高到1.2.0.
  • 将模板类型参数添加到invokeMethod调用.

0.9.7+1 #

  • 使用获取文档的示例更新自述文件.

0.9.7 #

  • 修复了在iOS上使用getDocuments时出现的NoSuchMethodError(在0.9.6中引入).
  • 为getDocuments添加驱动程序测试.

0.9.6 #

  • 在iOS上,更新null检查以匹配Firebase文档中建议的模式用法.
  • 修复了快照错误可能导致插件崩溃的情况.

0.9.5+2 #

  • 修复执行成功操作时发生的PlatformException(Error 0,null,null).

0.9.5+1 #

  • 现在,有关默认应用程序自动配置的日志消息不再那么混乱.

0.9.5 #

  • 修复了某些iOS设备上的问题,该问题导致读取错误的日期.

0.9.4 #

  • 遇到错误时,不再在iOS上发送空快照事件.

0.9.3 #

  • 当获取不存在的快照时,修复iOS上的事务.

0.9.2 #

  • 修复在Android上使用事务时出现的IllegalStateException错误.

0.9.1 #

  • 修复了交易和文档快照中Firebase多个应用程序的支持.

0.9.0+2 #

  • 删除类别.

0.9.0+1 #

  • 在构建时记录有关先前AndroidX迁移的更详细的警告.

0.9.0 #

  • 突破性的改变 . 从已弃用的原始Android支持库迁移到AndroidX. 这不应该导致任何功能上的变化,但是如果使用原始插件的Android应用程序也必须迁移 ,因此它们也必须进行迁移 .

0.8.2+3 #

  • 解决了"显式自参考"和"丢失准确性"编译器警告.

0.8.2+2 #

  • 清理Android构建日志. @SuppressWarnings("未选中")

0.8.2+1 #

  • 避免在文档快照回调中崩溃.

0.8.2 #

  • Added Firestore.settings
  • Added Timestamp class

0.8.1+1 #

  • 将Android依赖项更新到最新版本.

0.8.1 #

  • 修复了使用FieldValue更新数组始终会在Android上引发异常的错误.

0.8.0 #

注意:此版本取决于iOS SDK版本5.5.0或更高版本中的可用功能. 要在现有项目中更新iOS SDK,请运行pod update Firebase/Firestore .

  • Added Firestore.enablePersistence
  • 添加了FieldValue及其当前所有受支持的值: arrayUnionarrayRemovedeleteserverTimestamp .
  • Query.where方法中添加了arrayContains参数.

0.7.4 #

  • 碰撞Android和Firebase依赖版本.

0.7.3 #

  • 更新了Gradle工具以匹配Android Studio 3.1.2.

0.7.2 #

  • 如果发生FirebaseFirestoreException,则修复了Android崩溃的问题.

0.7.1 #

  • 更新了iOS实施以反映Firebase API的更改.
  • 修复了Transaction.get中的错误,该错误将在没有数据时失败.
  • 修复了README.md代码示例中的错误.

0.7.0+2 #

  • 更新README中的事务示例以添加await .

0.7.0+1 #

  • 将事务示例添加到README.

0.7.0 #

  • 突破性的改变 . snapshots现在是一种方法,而不是一种吸气剂.
  • 突破性的改变 . setData使用命名参数而不是SetOptions .

0.6.3 #

  • Google Play服务依赖项已更新至版本15.0.0.

0.6.2 #

  • 支持BLOB数据类型.

0.6.1 #

  • Cocoapods 1.5.0的简化podspec,避免了应用档案中的链接问题.

0.6.0 #

  • 突破性的改变 . 将" getCollection()"重命名为" collection()".

0.5.1 #

  • 公开与Firestore相对应的Firebase应用
  • 使用非默认Firebase应用公开Firestore的构造函数

0.5.0 #

  • 突破性的改变 . 将路径获取器移动到CollectionReference
  • 将ID getter添加到CollectionReference

0.4.0 #

  • 突破性的改变 . 从公共API隐藏Firestore编解码器类.
  • 调整了Flutter SDK约束,以使Flutter版本与可扩展的平台消息编解码器相匹配,这已经是0.3.1版所要求的.
  • 将每个班级移到单独的文件中

0.3.2 #

  • 支持批量写入.

0.3.1 #

  • 添加GeoPoint类
  • 允许在Document中读取和写入DocumentReference,DateTime和GeoPoint值.

0.3.0 #

  • 突破性的改变 . 设置SDK约束以匹配Flutter beta版本.

0.2.12 #

  • 修复对null文档快照的处理(文档不存在).
  • Add DocumentSnapshot.exists.

0.2.11 #

  • 修复Dart 2类型错误.

0.2.10 #

  • Fix Dart 2 type errors.

0.2.9 #

  • 将sdk上限约束放宽到" <2.0.0",以允许使用" edge" dart sdk.

0.2.8 #

  • 支持Query.getDocuments

0.2.7 #

  • 添加交易支持.

0.2.6 #

  • 针对iOS的构建修补程序
  • 空检查新添加的查询方法

0.2.5 #

  • 查询现在可以具有多个orderBy字段.
  • startAt,startAfter,endAt和endBefore支持
  • 极限支持

0.2.4 #

  • 支持DocumentReference.documentID
  • 支持CollectionReference.add

0.2.3 #

  • 将Android项目模板简化并升级到Android SDK 27.
  • 更新了软件包说明.

0.2.2 #

  • 添加get到DocumentReference.

0.2.1 #

  • 修复Android上有时会在没有句柄的情况下调用removeListener的错误

0.2.0 #

  • 突破性的改变 . 升级到Gradle 4.1和Android Studio Gradle插件3.0.1. 较早的Flutter项目也需要升级其Gradle设置才能使用此版本的插件. 说明可以在这里找到.
  • 放松了对[11.4.0,12.0 [

0.1.2 #

  • 支持DocumentReference更新和合并写入
  • 禁止在Android上取消选中的警告和程序包名称警告

0.1.1 #

  • 为iOS类型添加了FLT前缀.

0.1.0 #

  • 添加了对DocumentSnapshot的引用
  • 中断:从DocumentSnapshot中删除了路径
  • 用于阅读收藏和文档的其他测试范围
  • 修复DocumentChange文档中的错别字

0.0.6 #

  • 支持getCollection

0.0.5 #

  • Query.where支持isNull过滤
  • 固定DocumentChange.oldIndexDocumentChange.newIndex为带符号整数(iOS)

0.0.4 #

  • 支持where子句
  • 支持删除

0.0.3 #

  • 将包重命名为cloud_firestore

0.0.2 #

  • 将路径属性添加到DocumentSnapshot

0.0.1+1 #

  • 更新项目主页

0.0.1 #

  • 初始发行

example/README.md

firestore_example #

演示如何使用firestore插件.

Getting Started #

要获得Flutter入门方面的帮助,请查看我们的在线文档 .

Use this package as a library

1. Depend on it

将此添加到包的pubspec.yaml文件中:


dependencies:
  cloud_firestore: ^0.13.0+1

2. Install it

您可以从命令行安装软件包:

使用Flutter:


$ flutter pub get

另外,您的编辑器可能支持flutter pub get . 查看您的编辑器文档以了解更多信息.

3. Import it

现在,在Dart代码中,您可以使用:


import 'package:cloud_firestore/cloud_firestore.dart';
  
Popularity:
描述该程序包相对于其他程序包的受欢迎程度. [更多]
100
Health:
从静态分析得出的代码运行状况. [更多]
100
Maintenance:
反映出软件包的整洁和最新状态. [更多]
100
Overall:
以上的加权分数. [更多]
100
了解有关得分的更多信息.

我们在2019年12月11日分析了此软件包,并在下面提供了分数,详细信息和建议. using: 分析已完成,状态使用以下命令 :

  • 飞镖:2.7.0
  • 最高:0.13.1 + 4
  • Flutter:1.12.13 + hotfix.4

Dependencies

Package Constraint Resolved Available
直接依赖
Dart SDK > = 2.0.0-dev.28.0 <3.0.0
collection ^1.14.3 1.14.11 1.14.12
firebase_core ^0.4.0 0.4.2+2
flutter 0.0.0
meta ^1.0.5 1.1.8
传递依存关系
firebase_core_platform_interface 1.0.2
matcher 0.12.6
path 1.6.4
quiver 2.1.2+1
sky_engine 0.0.99
stack_trace 1.9.3
typed_data 1.1.6
vector_math 2.0.8
开发依赖
flutter_driver
flutter_test
test any

by  ICOPY.SITE