相关疑难解决方法(0)

Firestore选择where not not null

我正在使用firebase来管理我的项目,我无法使用where子句创建一个查询,其中某些值不为null.

示例:我有一组员工.每个都有一个设备列表作为对象,其中键是设备ID,值是颜色.

user = {
    firstName: 'blabla',
    lastName: 'bloblo',
    equipments: {
        123: 'blue',
        124: 'red'
    }
}
Run Code Online (Sandbox Code Playgroud)

我想让所有在设备中拥有一定设备的员工.让我们说123.

它来自Employees的Select*,其中equipment.123不为null.我试过了:

firestore.collection('employees').where(`equipments.${equipmentId}`, '!=', null)
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

我似乎无法使其发挥作用.你能帮助我吗.

javascript firebase google-cloud-firestore

15
推荐指数
2
解决办法
8964
查看次数

Firestore:如何查询不存在(未定义)的字段?

使用Firestore,如何编写查询以查找具有undefined字段的文档?

例如,这是一个带有两个文档的firestore集合:

{
  users: { // <- the collection
    a: { // <- the document
      active: true,
      profile: {
        first_name: 'Homer',
        last_name: 'Simpson',
      }
    },
    b:
      active: true
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

(以下是来自Firestore控制台的屏幕截图): 文档“ a”文档“ b”

鉴于上述的Firestore数据,我想执行以下操作:(
firestore().collection('users').where('profile', '==', undefined)这不是对Firestore的有效查询)

如何编写查询以检索不存在users某个字段(profile)的所有文档()?

谢谢!

firebase google-cloud-firestore

8
推荐指数
0
解决办法
3492
查看次数

Firestore,如何构建“likedBy”查询

我在思考如何最好地构建我的(非常简单的)Firestore 应用程序时遇到了一些麻烦。我有一组这样的用户:

users: {
   'A123': {
      'name':'Adam'
   },
   'B234': {
      'name':'Bella'
   },
   'C345': {
      'name':'Charlie'
   }
}
Run Code Online (Sandbox Code Playgroud)

...并且每个用户都可以“喜欢”或“不喜欢”任意数量的其他用户(例如 Tinder)。

我想构建一个“喜欢”表(或 Firestore 等效表),以便我可以列出我还没有喜欢或不喜欢的人。我最初的想法是在用户表中创建一个“喜欢”对象,其布尔值如下所示:

users: {
   'A123': {
      'name':'Adam',
      'likedBy': {
         'B234':true,
      },
      'disLikedBy': {
         'C345':true
      }
   },
   'B234': {
      'name':'Bella'
   },
   'C345': {
      'name':'Charlie'
   }
}
Run Code Online (Sandbox Code Playgroud)

这样,如果我是 Charlie 并且我知道我的 ID,我可以列出我还没有喜欢或不喜欢的用户:

var usersRef = firebase.firestore().collection('users')
.where('likedBy.C345','==',false)
.where('dislikedBy.C345','==',false)
Run Code Online (Sandbox Code Playgroud)

这不起作用(每个人都被列出)所以我怀疑我的方法是错误的,尤其是“==false”部分。有人可以指出我如何构建这个的正确方向吗?作为一个额外的问题,如果有人改变了他们的名字会发生什么?我是否需要更改所有嵌入的“likedBy”数据?或者我可以使用云功能来实现这一点吗?

谢谢!

node.js firebase google-cloud-firestore

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

Firestore选择字段为空的位置

如何选择没有特定字段的所有文档?我有以下结构:

user = {
    firstName: 'blabla',
    lastName: 'bloblo',
    address: {
        city: 'xxxx',
        state: 'xxx'
    }
}
Run Code Online (Sandbox Code Playgroud)

我曾尝试将其与null进行比较,但未成功。

let db = firebase.firestore();  
let querySnapshot = await db
    .collection("users")
    .where("address", "==", null)
    .get();
Run Code Online (Sandbox Code Playgroud)

javascript node.js firebase google-cloud-firestore

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