热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

无法使用时间戳从Firebase获取数据情况1.仅使用客户端SDK案例2。仅使用服务器SDK案例3。混合SDK

我正在尝试使用createdAt属性(它是一个时间戳)从我的集合中获取一个值

我正在尝试使用createdAt属性(它是一个时间戳)从我的集合中获取一个值。
这大致就是我的查询的样子:

function getDataFromYesterdayToNow (db){
const now = new Date()
const yesterday = new Date(now.setDate(now.getDate() - 1))
yesterday.setHours(0,0)
const { Timestamp } = firebase.firestore
return db
.collection('myData')
.where('createdAt','>=',Timestamp.fromDate(yesterday))
.where('createdAt','<=',Timestamp.fromDate(now))
.get()
}

但是,当我运行它时,出现以下错误:


  

错误为'FirebaseError:[code = invalid-argument]:函数Query.where()用无效数据调用。不支持的字段值:自定义时间戳对象。 Stacktrace是'FirebaseError:函数Query.where()用无效数据调用。不支持的字段值:自定义的时间戳记对象

我很困惑,我一直在使用其他集合中的Timestamp对象来获取数据,如果我尝试仅使用date对象,它将无法正常工作。我忘记了什么吗?

编辑:根据要求,以下是我的文档的示例:

{
name: "My Data Name",// (string)
createdAt: November 9,2018 at 8:40:45 PM // (Timestamp)
}


我有同样的问题。您需要检查两件事。

1。我在使用正确的SDK吗?

您知道您可以使用两种不同的firebase SDK吗?一个是客户端SDK (firebase-js-sdk,又名firebase包),另一个是firebase 服务器SDK (nodejs-firestore。aka @google-cloud/firebase包)。这两个库在firestore.Timestamp类上有自己的实现,并且它们不兼容

一些其他NPM软件包的依赖关系如下:

"@firebase/firestore" (*)
-> "firebase" (client SDK which imports all @firebase/* except @firebase/testing)
-> "@angular/fire" (and other client libraries with firebase binding)
-> "@firebase/testing" (mocking Firestore client)
"@google-cloud/firebase" (*) (server SDK)
-> "firebase-admin"
-> "firebase-functions-test"

(*)表示firestore.Timestamp定义的位置。

简而言之,您应该使用相应的时间戳记。

情况1.仅使用客户端SDK

import { firestore,initializeApp } from 'firebase';
import { config } from './my-firebase-config';
const app = initializeApp(config);
app.firestore().collection('users')
.where('createdAt','<=',firestore.Timestamp.fromDate(new Date()))
.get();

案例2。仅使用服务器SDK

import { firestore,initializeApp } from 'firebase-admin';
const app = initializeApp();
app.firestore().collection('users')
.where('createdAt',firestore.Timestamp.fromDate(new Date()))
.get();

案例3。混合SDK

有时候,当您测试在服务器上运行的代码(例如firebase函数)时,需要使用客户端SDK(特别是@firebase/testing

// server.ts
import { firestore,fs.Timestamp.fromDate(new Date()))
.get();

// server.test.ts
import { firestore } from 'firebase';
import { initializeAdminApp } from '@firebase/testing';
// Replace server sdk with client sdk
jest.mock('firebase-admin',() => ({
firestore,initializeApp: () => initializeAdminApp()
}));

2。我使用的版本正确吗?

如果您使用的是正确的SDK,那么接下来要检查的是您是否使用了相同版本的Timestamp实现。例如,如果您使用的是Client SDK,则应检查package-lock.json是否具有唯一版本的firebase

对于我来说,我在不同的时间安装了@firebase/testingfirebase,并且由于firebase@firebase/testing的版本依赖性不同,所以我有两个不同的{{ 1}}软件包同时安装。您可以更新旧软件包来解决此问题。


推荐阅读
  • 深入理解SAP Fiori及其核心概念
    本文详细介绍了SAP Fiori的基本概念、发展历程、核心特性、应用类型、运行环境以及开发工具等,旨在帮助读者全面了解SAP Fiori的技术框架和应用场景。 ... [详细]
  • HTML5 拖拽功能实现
    本文通过一个简单的示例,展示了如何利用 HTML5 的拖放 API 实现元素之间的拖拽功能。示例包括 HTML 结构、CSS 样式以及 JavaScript 逻辑,旨在帮助开发者快速理解和应用拖拽技术。 ... [详细]
  • 本文探讨了在JavaScript中如何有效地从服务器控件DropDownList中获取绑定的ID值,而非仅仅是显示的文本值。这对于需要根据用户选择动态处理数据的应用场景非常有用。 ... [详细]
  • 本文探讨了Flutter和Angular这两个流行框架的主要区别,包括它们的设计理念、适用场景及技术实现。 ... [详细]
  • 微信小程序支付官方参数小程序中代码后端发起支付代码支付回调官方参数文档地址:https:developers.weixin.qq.comminiprogramdeva ... [详细]
  • Gradle 是 Android Studio 中默认的构建工具,了解其基本配置对于开发效率的提升至关重要。本文将详细介绍如何在 Gradle 中定义和使用共享变量,以确保项目的一致性和可维护性。 ... [详细]
  • 我从GoogleFirebase服务中看过视频并阅读了Cloudfirestore的文档,但我无法想象实时数据库.我想到了这个Web应用程序,我希望从不同类别的产品中存储我的提供程 ... [详细]
  • 本文旨在探讨Linux系统中两种重要的进程间通信(IPC)机制——System V和POSIX的标准及其特性,为开发者提供深入的理解。 ... [详细]
  • 本文探讨了如何利用 Application 对象在 PHP 应用程序中共享数据,特别是在多用户环境中保持数据的一致性和安全性。文章还介绍了 Application 对象的基本结构、方法和事件,并提供了实际应用示例。 ... [详细]
  • 本文探讨了如何使用 JavaScript 解决 LeetCode 上的一道经典算法题——寻找和为指定值 s 的所有连续正整数序列。文章提供了详细的代码实现及算法分析。 ... [详细]
  • Java 中SimpleDateFormat 错误用法及改正 ... [详细]
  • 远程访问用户 Kindle通过电子书实现控制
    介绍自2007年以来,亚马逊已售出数千万台Kindle,令人印象深刻。但这也意味着数以千万计的人可能会因为这些Kindle中的软件漏洞而被黑客入侵。他 ... [详细]
  • 在将应用的 Android SDK 更新至 Target 29 后,使用 Facebook SDK 5.8.0 的应用程序在 Android 10 设备上出现崩溃。本文探讨了可能的原因及解决方案。 ... [详细]
  • 从理想主义者的内心深处萌发的技术信仰,推动了云原生技术在全球范围内的快速发展。本文将带你深入了解阿里巴巴在开源领域的贡献与成就。 ... [详细]
  • 如何处理为ListView显示空视图的问题,因为当我从Firebase数据库读取数据并将其显示在ListView中时,我不知道要放入哪些数据.我正在使用CustomListAdapter更改字体 ... [详细]
author-avatar
哈哈1991188
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有