Firebase 路径无效:Firebase 路径不得包含“.”、“#”、“$”、“[”或“]”

问题描述 投票:0回答:7

我正在使用 firebase 在 appinventor 上创建应用程序,当我向 firebase 引入电子邮件时返回错误,如何解决它?

Invalid Firebase path:  Firebase paths must not contain '.', '#', '$', '[', or ']'

firebase app-inventor
7个回答
1
投票

这是一个如果值包含

. # $ [ ]

则存储到 firebase 的示例

image


1
投票

使用电子邮件地址作为 Firebase 实时数据库中的键并不是一个好主意。电子邮件地址存在问题,因为它们不区分大小写,用户可能会随着时间的推移而更改它们,并且如您所见,它们包含无效字符。

相反,您应该使用其他一些标识符,例如自动推送 ID 或其他一些唯一 ID。您可以将电子邮件地址作为子值存储在为每个用户创建的空间中,并且如果您愿意,您可以稍后查询用户以查找特定的电子邮件地址。

如果您确实必须使用电子邮件地址作为子键,则需要以某种方式对字符串进行编码以删除无效字符,并且在搜索用户时始终记住以相同的方式对电子邮件地址字符串进行编码电子邮件。


0
投票

简单,在使用电子邮件地址之前替换所有“.”与“1”。

因此,此电子邮件“[email protected]”将类似于“example@email1com”。

这也可以用来替换任何其他非法字符。


0
投票

这似乎有效

Utils.EncodeString(user.email)

干杯


0
投票

您收到此异常是因为电子邮件包含无效字符,例如“.”和“@”对 firebase 数据库无效。相反,使用用户 ID。 只需使用

FirebaseAuth.getInstance().getCurrentUser().getUid()
。 希望问题应该消失。


0
投票

我在尝试使用

orderBy
时收到此错误,因为我从 UI 复制粘贴了如下内容:

.collection("my_collection").orderBy("", "asc")

忘记填写里面的

""
...


0
投票

我也遇到同样的错误。我通过一个简单的步骤解决了这个问题,看来您可能使用电子邮件地址作为密钥(我在我的例子中就是这样做的)并不是一个很好的做法,最好使用任何其他不包含特殊变量的变量作为密钥角色。

希望有帮助

© www.soinside.com 2019 - 2024. All rights reserved.