在火店云函数中基于文档 ID 进行查询不会返回任何结果



我正在尝试使用onDelete触发器查询Firestore。我正在获取已删除的医生id。

这是一个用户文档,我想获取被删除用户的"朋友"。Friends是用户文档中的一个数组。几个小时以来,我一直在尝试我见过的许多解决方案来吸引这些朋友,但都没有奏效。

我尝试过的:

  • const friendsOfDeletedUser = await fs
    .collection("users")
    .where(
    "friends",
    "==",
    fs.collection("users").doc(ctx.params.userId).id
    )
    .get();
    
  • const friendsOfDeletedUser = await fs
    .collection("users")
    .where(
    "friends",
    "array-contains",
    fs.collection("users").doc(ctx.params.userId).id
    )
    .get();
    
  • const friendsOfDeletedUser = await fs
    .collection("users")
    .where(
    "friends",
    "==",
    fs.collection("users").doc(ctx.params.userId).path
    )
    .get();
    
  • const friendsOfDeletedUser = await fs
    .collection("users")
    .where(
    "friends",
    "==",
    "/users/" + ctx.params.userId
    )
    .get();
    
  • const friendsOfDeletedUser = await fs
    .collection("users")
    .where(
    new FieldPath("friends"),
    "==",
    fs.collection("users").doc(ctx.params.userId).id
    )
    .get();
    

这些friends数组包含其他用户的id作为文档引用。

有趣的是,当我将这些字段作为普通的文档属性时,查询仍然没有返回任何内容。我怀疑firestore版本有什么问题,没有正确查询。因为我尝试过的东西应该在某些版本的FS中工作。

我正在本地模拟器中运行查询。

我一定在监督一些非常明显的事情。提前谢谢。

如果friendsDocumentReference的数组,那么查询时需要该引用,而不是文档ID。

const friendsOfDeletedUser = await fs
.collection("users")
.where(
"friends",
"array-contains",
fs.collection("users").doc(ctx.params.userId) // no .id or .path
)
.get();

这将返回friends数组中包含对已删除用户的引用的所有文档。

相关内容

  • 没有找到相关文章

最新更新