有人可以回答我的问题:为什么我不能像这样以root身份创建子代:
mDatabase.child("teams").child(uniqueIDstr).child("members").child(currentUser.getEmail()).setValue("XD");
因为类似这样的东西可以正常工作:
mDatabase.child("users").child(currentUser.getUid()).child("groups").child(uniqueIDstr).setValue("group");
问题出在这个电话上child(currentUser.getEmail())
。电子邮件地址始终至少包含一个,.
并且Firebase实时数据库中的密钥中不允许使用该字符。当您运行该代码时,实际上应该得到一条错误消息,该代码明确地告诉了您这一点。
常见的解决方案是“编码”电子邮件地址,例如通过.
从中删除或将其更改.
为,
。后者是一个巧妙的技巧,因为,
在电子邮件地址中不允许使用,而在实时数据库密钥中则允许使用。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句