gpt4 book ai didi

android - Firebase 无效 key : . key 不得包含 '/'、 '.'、 '#'、 '$'、 '[' 或 ']'

转载 作者:太空宇宙 更新时间:2023-11-03 10:37:03 27 4
gpt4 key购买 nike

为什么会出现这个错误?在 Debug模式下, key 中没有特殊字符,没有“.”,只有路径必需的“/”。它运行良好,我只是删除了我的数据库,然后我再次运行并显示标题中的错误。我的代码:

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 无效 key : . key 不得包含 '/'、 '.'、 '#'、 '$'、 '[' 或 ']',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42166144/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com