Это потому, что .
- это специальный символ в документах Firestore. Во-первых, обратитесь к документации по Firestore " Ограничения на пути к полям ":
Должны разделять имена полей с одним периодом (.)
Путь к полю, который вы указали с помощью "1@gmail.com", содержит .
, который интерпретируется как разделитель пути к полю. Он ищет в документе поле объекта с именем 1@gmail
, а затем пытается получить доступ к полю com
этого объекта. Очевидно, что это не будет найдено здесь, и оно возвращает ноль.
Если вы хотите получить доступ к имени поля с .
в нем, вам придется обернуть его в FieldPath объект:
Object o = document.get(FieldPath.of("1@gmail.com"));
String status2 = (String) o;