Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何创建包含=符号的firebase路径(不转换为%3D)_Android_Firebase_Firebase Realtime Database - Fatal编程技术网

Android 如何创建包含=符号的firebase路径(不转换为%3D)

Android 如何创建包含=符号的firebase路径(不转换为%3D),android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,在我的firebase数据库中,我尝试创建以下路径: FirebaseDatabase.getInstance().getReference().child(encodedMail); encodedMail值是:dGVzdEB0ZXN0LnRlc3Q=(它是邮件地址test@test.test编码为Base64) 在firebase数据库中,创建为:dGVzdEB0ZXN0LnRlc3Q%3D。如何确保创建的引用为:dGVzdEB0ZXN0LnRlc3Q= 我可以在Firebase控制台中手

在我的firebase数据库中,我尝试创建以下路径:

FirebaseDatabase.getInstance().getReference().child(encodedMail);
encodedMail
值是:
dGVzdEB0ZXN0LnRlc3Q=
(它是邮件地址test@test.test编码为Base64)

在firebase数据库中,创建为:
dGVzdEB0ZXN0LnRlc3Q%3D
。如何确保创建的引用为:
dGVzdEB0ZXN0LnRlc3Q=

我可以在Firebase控制台中手动创建此路径,没有问题,但只要我使用调用
getReference().child()
创建它,
=
符号就会转换为
%3D

相关代码如下所示:

final Map<String, Object> childCreation = new HashMap<>();

Log.d( TAG, "Encoded mail: " + encodedMail );

final DatabaseReference ref = FirebaseDatabase.getInstance().getReference().child("sharedEvents").child(encodedMail);
Log.d( TAG, "Reference: " + ref );

//see http://stackoverflow.com/questions/36161508/get-path-of-the-firebase-reference
String path = ref.toString().substring(ref.getRoot().toString().length());
Log.d( TAG, "Path: " + path );

childCreation.put( path, "a value");
FirebaseDatabase.getInstance().getReference().updateChildren(childCreation);

调用
DatabaseReference.toString()
时,它会输出一个可以粘贴到浏览器中的URL。这就是
=
被编码的原因


当您再次解码
=
时。

据我所知,Firebase不编码子名称。文本字符串被发送到服务器并(如果有效/合法)存储在那里。例如:这是您在我的数据库中的路径:
https://stackoverflow.firebaseio.com/39931981/dGVzdEB0ZXN0LnRlc3Q=.json
。你能告诉我你是如何写一个地址的,然后你又是如何遇到问题的吗?嗨,弗兰克,我已经用相关的代码扩展了这个问题。我想我应该通过重构代码来解决这个问题(跳过getReference().child()部分,直接将路径构造为字符串)。我不知道这是从哪里来的。等一下,我四处问问。
MainActivity: Remove manager: dGVzdEB0ZXN0LnRlc3Q=
MainActivity: Encoded mail: dGVzdEB0ZXN0LnRlc3Q=
MainActivity: Reference: https://xxxxx-development.firebaseio.com/sharedEvents/dGVzdEB0ZXN0LnRlc3Q%3D
MainActivity: Path: /sharedEvents/dGVzdEB0ZXN0LnRlc3Q%3D