首页 > 解决方案 > 如何在firestore db中使用破折号访问地图类型变量

问题描述

我有一个 Firestore 集合,如下所示:

user (collection)
    userUID (Document)
        token = "123"
        planet (Map)
            pl34-7ft (Map)
                planetName = "axiom"
                planetID = "pl34-7ft"
                island = "amrs"                 

我正在尝试运行查询以查找其帐户中具有行星“公理”的所有用户。

当我运行以下代码时:

var ref = await firestoreDb.collection('user').where("planet.pl34-7ft.planetName", "==", "axiom").get().then(snapshot => { ... }

我收到以下错误:

字段“planet.pl34-7ft.planetName”不是有效的 Firestore 字段路径。

当我将“p134-7ft”更改为没有破折号的名称时,即“malibu”,我没有收到错误消息。

我猜firestore需要一种特殊的方式来处理“破折号”字符?

有谁知道如何使用破折号访问字段路径?

谢谢!

标签: node.jsdatabasegoogle-cloud-firestore

解决方案


请尝试使用方括号 []: where([planet.pl34-7ft.planetName], "==", "axiom")

您也可以看到这篇文章: Firebase, variable as key name

运气!


推荐阅读