Относительно метода SetOptions merge()
в качестве официальной документации говорит:
Изменяет поведение вызовов set () для замены только значений, указанных в его аргументе данных.Поля, пропущенные в вызове set (), останутся нетронутыми.
Таким образом, метод SetOptions.merge()
заменит только поля в fieldPaths.Любое поле, которое не указано в fieldPaths, игнорируется и остается без изменений.
В качестве заключения, если документ не существует, он будет создан.Если документ существует, его содержимое will be overwritten
с вновь предоставленными данными, если только вы не укажете, что данные должны быть объединены в существующий документ.Поэтому, чтобы решить эту проблему, измените следующую строку кода:
db.collection("Users").document(FirebaseAuth.getInstance().getCurrentUser().getUid())
.set(docData);
на
db.collection("Users").document(FirebaseAuth.getInstance().getCurrentUser().getUid())
.set(docData, SetOptions.merge());