0

在阅读了这篇关于非规范化数据的博客文章之后,我正在尝试创建一个指令来检查已经用户的邮件方向,所以我的模型将是这样的:

root {
  users{
     userId: 1
     userMail: test@gmail.com
   {
  mails{
     test@gmail.com {
       userId: 1
     }
   {
}

所以这个想法是检查节点根/邮件的引用,但是当我尝试使用 firebase forge 对其进行建模时,它不允许我使用邮件创建节点。如果我放一个@符号,它不会抛出任何错误但什么也没有发生,只有当我取下@符号时,它才会正确添加新节点。

任何人都可以协助如何实现这一目标?我是否误解了上述文章中有关如何构建数据的任何内容?

谢谢!

4

2 回答 2

1

Firebase 中不允许使用以下字符作为键名:

. (period)
$ (dollar sign)
[ (left square bracket)
] (right square bracket)
# (hash or pound sign)
/ (forward slash)

您可以将您的电子邮件地址转义为“user@gmail,com”形式(将“.”替换为“,”),然后您应该能够按布局存储数据。

于 2013-08-30T20:32:08.300 回答
0

使用 Base64 + 一点额外的安全性可能是更安全的选择:

  • Base64 编码电子邮件地址
  • 用。。。来代替 -

您获得了一些优势

  • 无需为所有被列为不允许的 Anant 字符组成一个完全自定义的序列化程序
  • 最终用户更容易解码,因为 Base64 非常普遍,除了 / 交换

或者,如果数据大小不是一个大问题,Base16(十六进制)看起来非常好,并且永远只是字母和数字。

于 2013-09-06T09:24:23.230 回答