为什么会发生这种错误?在调试模式下,键中没有特殊字符,没有’.’,只有路径所需的’/’.它工作得很好,我只是擦了我的数据库,然后我再次运行标题中的错误.我的代码:@H_403_1@
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();@H_403_1@
@H_403_1@
String animalUID = animal.getUID();if (animalUID == null) { animalUID = databaseReference.push().getKey();}Map<String, Object> animalData = new HashMap();if(animal.getFavorites()!=null) { for (Map.Entry<String, Boolean> entry : animal.getFavorites().entrySet()) { animalData.put("users-favorites-animals/" + entry.getKey() + "/" + animalUID, animal); }}animalData.put("users-animals/" + animal.getownerUID() + "/" + animalUID, animal);animalData.put("animals/" + animalUID, animal);databaseReference.updateChildren(animalData).addOnCompleteListener(new OnCompleteListener() { @OverrIDe public voID onComplete(@NonNull Task task) { Listener.onSaveAnimalSucess(animal); }}).addOnFailureListener(new OnFailureListener() { @OverrIDe public voID onFailure(@NonNull Exception e) { if (e instanceof FirebaseException) { Listener.onSaveAnimalError(""); return; } Listener.onConnectionError(); }});
这里是animalData键在updateChildren之前的来源:@H_403_1@
“动物/ -Kcd_8Tif5EPYUhsceeH”@H_403_1@
“用户 – 动物/ LoQ9BkJs2yVC95nFGyo1ft4cqdB2 / -Kcd_8Tif5EPYUhsceeH”@H_403_1@
即使是没有多数据更新的旧代码也无法正常工作,但错误相同.我不知道是怎么回事.@H_403_1@
解决方法:@H_403_1@
不确定这是否会对你有所帮助,但我使用的是一些与我的个人物品发脾气的组件:D(例如,primeng自动选择框为我的数据添加了类似’_ $visited’的内容).
如果有人面临同样的问题并且您的对象中并不真正需要这些键,您可以考虑调用以下函数. (你需要为它做lodash)@H_403_1@
@H_403_1@
private makeObjectGreatAgain(object: any) {// removing undefined values from any arrays!// and some variables which are added by different components// firebase not allowed keys: ".", "#", "$", "/", "[", or "]"object = JsON.parse(JsON.stringify(object), (key, val) => { if (!_.includes(key, '.') && !_.includes(key, '#') && !_.includes(key, '$') && !_.includes(key, '/') && !_.includes(key, '[') && !_.includes(key, ']')) { return val; } else { console.log('removing invalID key: ' + key + ' val: ' + val); }});return object;}
总结 以上是内存溢出为你收集整理的android – Firebase无效密钥:.密钥不得包含’/’,’.’,’#’,’$’,'[‘或’]’全部内容,希望文章能够帮你解决android – Firebase无效密钥:.密钥不得包含’/’,’.’,’#’,’$’,'[‘或’]’所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)