我正在用firebase在appinventor上创建一个应用程序,当我向firebase引入电子邮件时,我返回了一个错误,如何解决它?第一个月
jvidinwx1#
这是一个存储到firebase的例子,如果值包含. # $ [ ]
. # $ [ ]
的数据
n3h0vuf22#
在Firebase实时数据库中使用电子邮件地址作为键并不是一个好主意。电子邮件地址是有问题的,因为它们不区分大小写,用户可能会随着时间的推移而更改它们,并且正如您所看到的,它们包含无效字符。相反,您应该使用其他一些标识符,例如自动推送ID或其他一些唯一ID。您可以将电子邮件地址作为子值存储在为每个用户创建的空间中,如果愿意,您可以稍后查询用户以查找特定的电子邮件地址。如果您确实必须使用电子邮件地址作为子密钥,则需要以某种方式对字符串进行编码以删除无效字符,并且始终记住在通过该电子邮件搜索用户时以相同的方式对电子邮件地址字符串进行编码。
gdrx4gfi3#
简单,在使用电子邮件地址之前,将所有的'.'替换为'1'。因此,此电子邮件“email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)“将类似于“example@email1com”。这也可以用来取代任何其他不合法的字符。
bfhwhh0e4#
这似乎工作
Utils.EncodeString(user.email)
字符串欢呼
tmb3ates5#
您收到此异常是因为电子邮件包含无效字符,如“.”和“@”,这些字符对firebase数据库无效。请改用用户ID。只需使用FirebaseAuth.getInstance().getCurrentUser().getUid()。希望问题会消失。
FirebaseAuth.getInstance().getCurrentUser().getUid()
gcuhipw96#
我在尝试使用orderBy时收到了这个错误,因为我从UI复制粘贴了如下内容:
orderBy
.collection("my_collection").orderBy("", "asc")
字符串忘了填里面的""了。。
""
pvcm50d17#
我也得到了同样的错误.我解决了它在一个简单的步骤,似乎你可能会使用电子邮件地址作为关键(我在我的情况下)是不是一个很好的做法,它会更好地使用任何其他变量作为关键不包含特殊字符.希望有帮助
7条答案
按热度按时间jvidinwx1#
这是一个存储到firebase的例子,如果值包含
. # $ [ ]
的数据
n3h0vuf22#
在Firebase实时数据库中使用电子邮件地址作为键并不是一个好主意。电子邮件地址是有问题的,因为它们不区分大小写,用户可能会随着时间的推移而更改它们,并且正如您所看到的,它们包含无效字符。
相反,您应该使用其他一些标识符,例如自动推送ID或其他一些唯一ID。您可以将电子邮件地址作为子值存储在为每个用户创建的空间中,如果愿意,您可以稍后查询用户以查找特定的电子邮件地址。
如果您确实必须使用电子邮件地址作为子密钥,则需要以某种方式对字符串进行编码以删除无效字符,并且始终记住在通过该电子邮件搜索用户时以相同的方式对电子邮件地址字符串进行编码。
gdrx4gfi3#
简单,在使用电子邮件地址之前,将所有的'.'替换为'1'。
因此,此电子邮件“email protected(https://stackoverflow.com/cdn-cgi/l/email-protection)“将类似于“example@email1com”。
这也可以用来取代任何其他不合法的字符。
bfhwhh0e4#
这似乎工作
字符串
欢呼
tmb3ates5#
您收到此异常是因为电子邮件包含无效字符,如“.”和“@”,这些字符对firebase数据库无效。请改用用户ID。只需使用
FirebaseAuth.getInstance().getCurrentUser().getUid()
。希望问题会消失。gcuhipw96#
我在尝试使用
orderBy
时收到了这个错误,因为我从UI复制粘贴了如下内容:字符串
忘了填里面的
""
了。。pvcm50d17#
我也得到了同样的错误.我解决了它在一个简单的步骤,似乎你可能会使用电子邮件地址作为关键(我在我的情况下)是不是一个很好的做法,它会更好地使用任何其他变量作为关键不包含特殊字符.
希望有帮助