首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我无法从Firestore DocumentSnapshot获取Int类型?

Firestore是一种云数据库服务,它是Google Cloud提供的一种NoSQL文档数据库。Firestore的DocumentSnapshot是一个表示数据库中单个文档的快照的对象。在Firestore中,文档可以包含不同类型的字段,如字符串、数字、布尔值等。

然而,Firestore的DocumentSnapshot对象中的字段值并不是直接的基本数据类型,而是Firestore自定义的FieldValue类型。这是因为Firestore的DocumentSnapshot对象是一个不可变对象,它提供了一些方法来获取字段值并进行类型转换。

要从Firestore的DocumentSnapshot对象中获取Int类型的字段值,可以使用DocumentSnapshot对象的get()方法和getInt()方法。具体步骤如下:

  1. 使用DocumentSnapshot对象的get()方法获取字段值,该方法返回一个FieldValue对象。
  2. 使用FieldValue对象的getInt()方法将字段值转换为Int类型。

以下是示例代码:

代码语言:txt
复制
DocumentSnapshot documentSnapshot = ...; // 获取到的DocumentSnapshot对象
FieldValue fieldValue = documentSnapshot.get("fieldName");
if (fieldValue != null) {
    int intValue = fieldValue.getInt();
    // 使用intValue进行后续操作
} else {
    // 字段不存在或字段值为空
}

需要注意的是,如果字段不存在或字段值为空,getField()方法将返回null。因此,在使用getInt()方法之前,需要进行null检查。

Firestore是Google Cloud提供的云数据库服务,它具有高可靠性、可扩展性和安全性。它适用于各种应用场景,如Web应用程序、移动应用程序、物联网设备等。对于使用Firestore的开发者,可以使用腾讯云的云数据库TencentDB来替代,TencentDB提供了类似的功能和性能,并且与腾讯云的其他产品和服务集成。更多关于腾讯云云数据库的信息,可以访问腾讯云官方网站:腾讯云云数据库

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

如何用TensorFlow和Swift写个App识别霉霉?

给 Taylor Swift 的照片打标签,搞得旁边路过的人都以关爱智障的眼神望着)。...在的 train/bucket 中,可以看到训练过程的几个点中保存出了检查点文件: ? 检查点文件的第一行会告诉我们最新的检查点路径——我会本地在检查点中下载这3个文件。...然后将添加了边框的新照片保存至 Cloud Storage,并写出照片到 Cloud Firestore 的文件路径,这样就能读取路径,在 iOS 应用中下载新照片(带有识别框): const admin...confidence });bucket.upload('/tmp/path/to/new/image', {destination: outlinedImgPath}); 最后,在 iOS 应用中可以获取照片更新后的...{ let imageData = (documentSnapshot?.

12.1K10

我们弃用 Firebase 了

如果这可以定制,那对来说会是一种帮助。 还注意到,无法在 Firebase Storage 仪表板上下载文件了;必须导航到单独的 GCP 平台。...无法在 Firebase 仪表板上下载这个文件。这不符合直觉,“打开”竟然不让下载。 直接 Google Cloud Console 下载。...运营的角度来看,这是合理的。但是,简化 Firebase 的云体验会使它失去大部分的价值;我们客户并不想了解 GCP。在最近的 Firebase 项目中,在想我们是否应该推出自定义的服务。...为什么 Firebase Hosting 会需要 Cloud Function list 授权,这让很困惑。无论如何,Google Cloud Console 是添加此权限的唯一方法。...点击底部阅读原文访问 InfoQ 官网,获取更多精彩内容!

32.6K30
  • 骑上心爱的小摩托,再挂上AI摄像头,去认识一下全城的垃圾!

    一个城市只需要有一些这样的摄像头,装在垃圾收集车或专用车辆,垃圾处理中心的人员可以他们的办公室实时远程监控垃圾统计数据,比如每种垃圾类型通常出现在哪里,每天、每周和每月的趋势,热点等。 ?...垃圾的GPS坐标通过简单的gpsd接口usb模块读取,将数据存储在Google Firestore实时数据库中,这样本地的Google firebase SDK就被用于客户端应用程序开发。...我们选择Ionic+Angular进行前端开发和谷歌的Firestore坐标实时数据库。...我们计划使用Firestore分布式计数器来添加更多的实时统计信息,例如基于区域的每个垃圾类型的每日和每周统计信息。 同样在后端。...支持将数据导出到其他类型的数据库。比如支持基于SQL的历史数据集查询。

    10.3K30

    用 awaitasync 正确链接 Javascript 中的多个函数

    到目前为止,发现用 .then() 回调处理异步操作更容易思考,但是想在这里用 async/await,因为它读起来更清晰。...发现大多数关于链接多个函数的文章都没有用,因为他们倾向于发布MSDN 复制粘贴的不完整的演示代码。...在 async/await 上有一些难以调试的陷阱,因为遇到了所有这些陷阱,所以我将在这里发布自己的完整代码并解释的学习过程。...然后我们需要 async 函数 getEmailOfCourseWithCourseId() Firestore获取课程的电子邮件地址。...我们不知道 Firestore 获取内容需要多长时间,因此它是 async 的,我们需要运行接下来的两个函数并返回(或以 promise 解析)courseEmail 。

    6.3K30

    Flow 操作符 shareIn 和 stateIn 使用须知

    底层数据流生产者 继续使用 之前文章 中使用过的例子——使用底层数据流生产者发出位置更新。它是一个使用 callbackFlow 实现的 冷流。...不过,我们需要缓存最后发送的项目,让用户在获取当前位置时能在屏幕上看到一些数据 (即使数据是旧的)。针对这种情况,我们可以使用 stateIn 操作符。...以开源项目——Google I/O 的 Android 应用 iosched 为例,您可以在 源码中 看到, Firestore 获取用户事件的数据流是通过 callbackFlow 实现的。...由于其接收 userId 作为参数,因此无法简单使用 shareIn 或 stateIn 操作符对其进行复用。...UserRepository( private val userEventsDataSource: FirestoreUserEventDataSource ) { // 新的收集者会在 Firestore

    4.6K20

    【干货】手把手教你用苹果Core ML和Swift开发人脸目标识别APP

    的图像标记和图像转化都follow他的博客,将图片转换为TensorFlow需要的格式。在这里总结一下的步骤。 第一步:谷歌图片下载200张Taylor Swift的照片。...repo对五个预先训练的模型类型都有配置文件。 在这里使用了MobileNet,并使用云存储区中的相应路径更新了所有PATH_TO_BE_CONFIGURED。...▌第3步:部署模型进行预测 ---- ---- 将模型部署到机器学习引擎需要将我的模型检查点转换为ProtoBuf。 在的训练过程中,可以看到几个检查点保存的文件: ?...▌第4步:使用Firebase和Swift构建预测客户端 ---- ---- 在Swift中编写了一个iOS客户端来对的模型进行预测请求(因为为什么不用其他语言编写TSwift检测器?)...在的函数中,Firestore写预测元数据。

    14.8K60

    2021年11个最佳无代码低代码后端开发利器

    尽管似乎有一个写代码到使用可视化开发工具的范式转变,但拥有一个后端和前端的基本概念仍然是相同的。要为你的业务建立一个应用程序,你将需要一种方法来连接你的后端和前端。...下面列出的许多后端工具提供一个API网关,平台提供的托管后端连接前端。 ◆ Airtable 最适合想要一个可视化的、灵活的后端并且刚刚开始了解API的初学者。...每个字段都有其独特的数据类型。这种数据库类型的优势在于,它可以帮助你在构建应用程序时快速移动。 Firestore有自己的内置安全系统。...定价 Spark计划 (免费):Firestore的总存储数据为1GB Blaze计划(随用随付):总容量为1GB,每多存储1GB的数据在Firestore中加0.108美元。...Kafka 事务性,消息丢失和消息重复发送的处理策略 2022年最该收藏的8个数据分析模型 系统集成服务集成交互技术:REST服务集成—Swagger接口文档规范 Bootstrap实战 - 响应式布局 为什么

    12.6K20

    3 名程序员被开除:因一次 APP 崩溃。。。

    之前从来没有与别人讲过这个尴尬的故事。 现在从事的是第三份工作。在之前两份工作中,一次是被解雇了,另一次是主动辞职了。 但是被解雇对来说是一次糟糕的经历。哭了一整天。...从来没有把这件事告诉过任何人,包括朋友和新同事。觉得羞愧难当,以至于我在解释为什么离开上一份工作时撒了小谎。 甚至不能告诉父母,因为他们听后会非常不安。只给男朋友讲过。...在2019年2月进入了这家公司。三个月后,由实习生被晋升为初级开发人员。在那段实习期间,每月只领到100美元。对此并不后悔,因为需要积累工作经验。 公司共有五名程序员。...他是合伙人之一,所以我们无法向更高一级的人投诉他。 要是有谁上班迟到了5分钟,他就会扣掉半天的工资。但如果大家额外工作了一两个小时,却没人能拿到额外的钱。...为了快速开发,我们使用了Firebase的Cloud Firestore来保存数据。当用户移动前端将字符串数据而不是数字数据推送到Firestore时,应用程序崩溃了。

    2.2K20

    Vue.js + Node.js + Express + MySQL示例:构建全栈CRUD应用程序

    example: Build a full-stack CRUD Application 上次修改时间:2020年10月16日 bezkoder Full Stack,Node.js,Vue.js 在本教程中,将向您展示如何构建一个全栈...& Authorization example Serverless with Firebase: Vue Firebase Realtime Database: CRUD example Vue Firestore...在这个页面中,你可以: 使用Publish/UnPublished按钮将状态更改成Published/Pending 使用Delete按钮MySQL数据库中删除对象 使用Update按钮更新数据库中对象的详细信息...Vue客户端使用axios发送HTTP请求并获取HTTP响应,在组件中使用数据。 Vue路由器用于页面间的导航。...TutorialsList组件获取并显示Tutorials。 Tutorial组件具有用于根据`:id’编辑教程详细信息的表单。 AddTutorial组件具有用于提交新教程的表单。

    25K21

    Flutter 移动端架构实践:Widget-Async-Bloc-Service

    然而,在构建完成并将它们一次次的重构之后,调整出了一种在所有项目中都能够运行完好的开发体系,因此,在本文中,将介绍一种定义的新的架构模式: 现有的开发模式中借鉴了很多思想; 调整它们以满足实际开发...换句话说,我们可以将Service视为 纯粹 的功能组件, 它可以修改和转换第三方库收到的数据。...示例: Firestore service 我们可以实现一个FirestoreDatabase的Service作为Firestore的指定域的API包装器。...输入的数据(读取):将来自Firestore文档的键值对的流转换为强类型的不可变数据Model。 数据输出(写入):将数据Model转换为键值对,以便写入Firestore。...无论如何,发现BLoCs在使用Firestore构建app时效果非常明显,其中数据通过流后端流入app。 在这种情况下,通常将流进行组合或使用RxDart对其执行转换,BLoC很擅长这个。

    16.1K20

    协程 Flow 最佳实践 | 基于 Android 开发者峰会应用

    应用数据层负责提供数据,通常是数据库中读取,或网络获取数据,例如,示例是一个数据源接口,它提供了一个用户事件数据流: interface UserEventDataSource { fun getObservableUserEvent...: Flow = flow { // 生产者代码开始执行,流被打开 while(true) { // 执行计算 emit(result) delay(100)...BroadcastChannel 无法感知到当前是否还存在监听者,除非关闭或取消 BroadcastChannel,否则将会一直持有资源。...同时请注意关闭后的 BroadcastChannel 无法再次被使用,如果需要,您需要重新创建实例。 接下来,我们将分享如何使用 BroadcastChannel API 的示例。 3....Flow 中获取一些数据,使用 toList 作为末端操作符来数组中获取结果。

    3.5K11

    应用程序崩溃,融资泡汤,我们三个程序员惨被祭天

    作者|The woman 译者|核子可乐 策划|钰莹 如今,已经做着第三份工作了,之前两份工作一次是主动辞职,另一次则是被单位解雇,这次被解雇的经历让终身难忘。...2傲慢的 CTO 完全不顾现实情况提出的开发要求根本无法完成 公司 CTO 总是给我们布置整整一周的任务,完全不在乎我们的实际开发速度如何。...在此期间,因为没时间参加而错过了两次面试。但没办法,那时候的不敢冒险、害怕丢掉眼前这份哪怕已经无比糟糕的工作。...为了快速开发,我们使用 Firebase 的 Cloud Firestore 保存数据。当用户移动前端向 Firestore 推送的是字符串数据而非数字数据时,应用就会崩溃。...最后,想提醒各位开发者朋友,千万不要在这种没有尊重、没有价值、而且压力巨大的工作岗位上浪费生命。如果在那家公司再待六个月,换来的不可能是任何有意义的积累、只是永远无法挽回的一段职业青春。

    1.7K10

    Go之Viper

    它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式; Viper是适用于Go应用程序(包括Twelve-Factor App)的完整配置解决方案。...它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。...远程配置系统(etcd或Consul)读取并监控配置变化 从命令行参数读取配置 buffer读取配置 显式配置值 为什么选择viper 在构建现代应用程序时,你无需担心配置文件格式;你想要专注于构建出色的软件...viper.AddRemoteProvider("firestore", "google-cloud-project-id", "collection/document") viper.SetConfigType...你还可以借助channel实现一个通知系统更改的信号 runtime_viper.Unmarshal(&runtime_conf) } }() Viper获取值 在Viper中,有几种方法可以根据值的类型获取

    6.4K101
    领券