У меня есть проект Android.Я использую базу данных Firebase для чата в моем приложении.
У меня есть функция для создания пользователя, в этой функции я добавил всех новых пользователей как ключ , а не значение, чтобы сделать его уникальным.Нет проблем, я не могу добавить нового пользователя, если я пытаюсь добавить нового пользователя с существующим именем.
Но я всегда получаю ноль ошибка, хотя я пытаюсь добавить нового пользователя с тем же именем.Я думаю, что должен получить ошибку, если я попытаюсь добавить нового пользователя с тем же именем.
createUser:
private void createUser(final String uname){
DatabaseReference dbref = firedb.getReference();
final String testedUname = uname ;
dbref.child("User").child(uname).setValue(true, new DatabaseReference.CompletionListener() {
@Override
public void onComplete(DatabaseError error, DatabaseReference ref) {
if (error != null) {
Log.d("firebaseTest","tested_uname: " + testedUname + " Data could not be saved. " + error.getMessage());
requestNewUser();
} else {
Log.d("firebaseTest","tested_uname: " + testedUname + " Data saved successfully." );
//Always, this else statement works although I write same username.
}
}
});
}
Я добавил 5 новых значений.
Aaabbb
Aaabbb (!)
Aabbcc
Aa11aa
Aabbcc (!)
Iпредставьте, что во 2-й и 5-й строке код должен выдавать выходные данные, когда этот текст существует в базе данных:
Данные не могут быть сохранены.
Но он всегда дает вывод:
Данные успешно сохранены.
05-22 14:32:20.346 13402-13402/xxx D/firebaseTest: tested_uname: Aaabbb Data saved successfully.
05-22 14:32:34.666 13402-13402/xxx D/firebaseTest: tested_uname: Aaabbb Data saved successfully.
05-22 14:32:51.176 13402-13402/xxx D/firebaseTest: tested_uname: Aabbcc Data saved successfully.
05-22 14:33:06.026 13402-13402/xxx D/firebaseTest: tested_uname: Aa11aa Data saved successfully.
05-22 14:33:22.826 13402-13402/xxx D/firebaseTest: tested_uname: Aabbcc Data saved successfully.
окончательная база данных в базе данных
В результате мой CompletionListener всегда возвращает ноль для переменной ошибки.
Как я могу запретить возвращать ноль, если в базе данных уже есть пользователь?