Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Firebase按日期查询部署后不起作用_Node.js_Firebase_Google Cloud Firestore_Google Cloud Functions - Fatal编程技术网

Node.js Firebase按日期查询部署后不起作用

Node.js Firebase按日期查询部署后不起作用,node.js,firebase,google-cloud-firestore,google-cloud-functions,Node.js,Firebase,Google Cloud Firestore,Google Cloud Functions,我正在使用firebase开发RESTAPI,并按日期查询一些数据。它可以在本地主机上正常工作,但在部署之后,就不行了!我还使用momentjs来帮助处理日期 我的文档的日期字段是时间戳 下面是我如何进行查询的: const documents = await admin.firestore() .collection('orders') .where('date', '>', moment('2020-06-23')) .where('date', '<', momen

我正在使用firebase开发RESTAPI,并按日期查询一些数据。它可以在本地主机上正常工作,但在部署之后,就不行了!我还使用momentjs来帮助处理日期

我的文档的日期字段是时间戳

下面是我如何进行查询的:

const documents = await admin.firestore()
  .collection('orders')
  .where('date', '>', moment('2020-06-23'))
  .where('date', '<', moment('2020-06-24'))
  .get()
const documents=wait admin.firestore()
.收款(“订单”)
.其中('date','>',moment('2020-06-23'))
其中(‘日期’、‘新日期’(2020年6月23日))
.其中(‘日期’、‘时刻’、‘2020-06-24’)

.where('date','当您在JavaScript中创建一个日期对象而不指定特定的时间点时,它将使用运行代码的计算机的时区使用所提供日期的午夜。您的计算机对午夜的感觉将不同于其他时区中的其他计算机

为了以可预测的方式执行此查询,您必须在时间上找到特定的时刻,而不考虑时区,并在查询中使用该时刻


请记住,您在Firebase控制台中看到的时间戳被格式化为使用本地计算机的时区感。Firestore中的时间戳实际上没有任何时区-它们都是以UTC度量的。

当您在JavaScript中创建日期对象而不指定特定的时间点时,它会使用午夜时间d使用运行代码的计算机的时区来确定日期。您的计算机对午夜的感知将不同于其他时区中的其他计算机

为了以可预测的方式执行此查询,您必须在时间上找到特定的时刻,而不考虑时区,并在查询中使用该时刻


请记住,您在Firebase控制台中看到的时间戳的格式是使用本地计算机的时区感。Firestore中的时间戳实际上没有任何时区-它们都是以UTC度量的。

当您说“它在本地主机上运行良好”时,您的意思是查询在本地Firestore emulator上运行时有效吗?正如我在您的另一个问题中提到的,您将需要显示您正在查询的源数据。在不知道您期望从实际数据返回什么的情况下,我们无法查看您的查询是否确实正确。请编辑该问题以包括enough任何人都可以用来重现问题的信息。这可能涉及到与您的查询匹配和不匹配的数据的屏幕截图。@FrankvanPuffelen是的,如果我运行firebase deploy并尝试它,结果将是different@DougStevenson我已经更新并添加了一些图片,希望它能帮助汉克斯澄清。基于此,我会说Is很可能是一个时区问题,因为您的本地机器可能运行在与Cloud Firestore不同的时区(在您的第二个屏幕HUPT中的URC-3)。考虑在构建数据时设置时区,以便底层值与存储在数据库中的值匹配。,您的意思是查询在本地Firestore emulator上运行时有效吗?正如我在您的另一个问题中提到的,您将需要显示您正在查询的源数据。在不知道您期望从实际数据返回什么的情况下,我们无法查看您的查询是否确实正确。请编辑该问题以包括enough任何人都可以用来重现问题的信息。这可能涉及到与您的查询匹配和不匹配的数据的屏幕截图。@FrankvanPuffelen是的,如果我运行firebase deploy并尝试它,结果将是different@DougStevenson我已经更新并添加了一些图片,希望它能帮助汉克斯澄清。基于此,我会说Is很可能是时区问题,因为您的本地机器可能运行在与Cloud Firestore不同的时区(第二个屏幕HUPT中的URC-3)。考虑在构建数据时设置时区,以便基础值与数据库中存储的内容相匹配。
const documents = await admin.firestore()
  .collection('orders')
  .where('date', '>', new Date('Jun 23 2020'))
  .where('date', '<', new Date('Jun 24 2020'))
  .get()
const documents = await admin.firestore()
  .collection('orders')
  .where('date', '>', moment('2020-06-24'))
  .where('date', '<', moment('2020-06-25'))
  .get()