![android – Firebase无效密钥:.密钥不得包含’’,’.’,’#’,’$’,'[‘或’]’,第1张 android – Firebase无效密钥:.密钥不得包含’’,’.’,’#’,’$’,'[‘或’]’,第1张](/aiimages/android+%E2%80%93+Firebase%E6%97%A0%E6%95%88%E5%AF%86%E9%92%A5%EF%BC%9A.%E5%AF%86%E9%92%A5%E4%B8%8D%E5%BE%97%E5%8C%85%E5%90%AB%E2%80%99%E2%80%99%2C%E2%80%99.%E2%80%99%2C%E2%80%99%23%E2%80%99%2C%E2%80%99%24%E2%80%99%2C%26amp%3B%2339%3B%5B%E2%80%98%E6%88%96%E2%80%99%5D%E2%80%99.png)
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference();
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之前的来源:
“动物/ -Kcd_8Tif5EPYUhsceeH”
“用户 – 动物/ LoQ9BkJs2yVC95nFGyo1ft4cqdB2 / -Kcd_8Tif5EPYUhsceeH”
即使是没有多数据更新的旧代码也无法正常工作,但错误相同.我不知道是怎么回事.
解决方法 不确定这是否会对你有所帮助,但我使用的是一些与我的个人物品发脾气的组件:D(例如,primeng自动选择框为我的数据添加了类似’_ $visited’的内容).如果有人面临同样的问题并且您的对象中并不真正需要这些键,您可以考虑调用以下函数. (你需要为它做lodash)
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条)