왜이 오류가 발생합니까? 디버그 모드에는 키에 특수 문자가 없으며 '.'가없고 경로에 필요한 '/'만 있습니다. 그것은 잘 작동하고 있었고, 나는 데이터베이스를 지우고 타이틀의 오류로 다시 실행했습니다. 내 코드 :
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"
심지어 내 예전의 코드 다중 데이터 업데이트가 작동하지 않으며 동일한 오류가 발생합니다. 나는 무슨 일이 벌어지고 있는지 전혀 모른다.
키는 /를 포함하지 않아야한다. 여기서 명확하지 않은 점은 무엇입니까? –
이것은 키가 아니며 firebase가 지원하는 깊은 경로이지만 이전 firebase 버전으로 key를 계속 호출합니다. https://firebase.googleblog.com/2015/09/introducing-multi-location-updates-and_86.html –
이전 버전의 firebase (Android (2.4.0))에서 블로그를 읽는 중입니다.). 최신 버전은 10.0.x입니다 ... 최신 API를 확인하십시오 –