小编Ste*_*ley的帖子

132
推荐指数
2
解决办法
2万
查看次数

按缺失字段约束结果排序

我遇到了 Firestore 的一个问题,这对我来说很不直观,所以我想知道是否有人可以帮助我理解 Firestore 给出这个结果的原因。

假设我有一个名为“people”的集合,其中包含“firstName”和“lastName”字段。假设该集合中有 20 个文档的姓氏为“Quaid”。然后我有一个字段“inCanada”,它只出现在这 20 个文档的一个子集中,比方说 5 个。其他 15 个文档没有该字段。

令人惊讶的是,使用该可选字段的 orderBy 子句实际上是在过滤结果集,而不仅仅是对其进行排序,与其他数据库相比,这对我来说没有意义。

在下面的示例中,我希望两个结果集都有 20 个元素,但是具有 orderBy 的第二个集只有 5 个存在该字段的文档。

有人可以解释为什么 Firestore 这样做吗?

const Admin = require('firebase-admin');

(async function () {
  const initFirebase = require('../initFirebase');
  initFirebase();

  const people = Admin.firestore().collection('people');
  const quaids = people.where('lastName', '==', 'Quaid')
  const quaids1 = await quaids.get();
  const quaids2 = await quaids.orderBy('inCanada', 'desc').get();

  console.log(quaids1._size); // 20
  console.log(quaids2._size); // 5
})();
Run Code Online (Sandbox Code Playgroud)

firebase google-cloud-firestore

7
推荐指数
1
解决办法
1241
查看次数

是否只有 POST 请求可用于 Google Cloud Functions HTTP 触发器

我希望将 rest API 部署到 Google Cloud Functions,但是部署文档似乎表明只能使用 POST 请求:

对函数端点(部署输出的 web_trigger.url 参数)的每个 HTTP POST 请求都将触发函数执行。函数执行的结果将在响应正文中返回。- https://cloud.google.com/functions/docs/deploying/

理想情况下,我希望将路径与通配符和不同的 HTTP 方法相关联,例如

POST /user
GET  /user/:id
PUT  /user/:id
DEL  /user/:id
Run Code Online (Sandbox Code Playgroud)

使用通配符值填充函数上下文中的一些 params 对象,如 Rails、Hapijs 等。

想知道 Cloud Functions 是否可以实现上述功能,如果不能,将来是否会实现?

google-cloud-platform google-cloud-functions

1
推荐指数
1
解决办法
5142
查看次数