Firebase上传键值对报错排查:child非法字符属键还是值?
问题解答:Firebase (child:) 错误的指向说明
这个报错完全是针对节点的「键(Key)」,和键对应的「值(Value)」没有任何关系。Firebase Realtime Database 规定节点的键名不能是空字符串,也不能包含 . # $ [ ] 这几个特殊字符,而值里不管有什么字符都是允许的——比如你字典里的 Email 值带 .、profileImageUrl 带 $ 和 = 都不会触发这个错误。
看你提供的字典,里面的所有键(比如 Subtitle、Display Name 等)都没有包含禁用字符,所以问题大概率出在你写入数据时的父节点路径指定上:
- 比如你可能用了类似
ref.child("users").child("go@mail.com").setValue(yourDictionary)的写法,这里child("go@mail.com")里的邮箱包含.,就会触发这个错误; - 或者你在其他层级的
child()调用中传入了包含禁用字符的字符串。
建议你检查所有调用 child() 方法时传入的参数,以及你要写入的所有键名,把包含禁用字符的部分替换成合法字符(比如把 . 换成 _)就能解决问题了。
内容的提问来源于stack exchange,提问作者user9043410
相关产品推荐
相关产品推荐

