Я пытаюсь отправить данные формы в firebase-firestore. И я тоже успешно это сделал. Но проблема в том, что всякий раз, когда я снова и снова пытаюсь отправить данные формы, он просто обновляет последние данные текущими данными.
На самом деле, мое требование состоит в том, чтобы всякий раз, когда пользователь нажимал кнопку отправки. Он создает документ со случайным идентификатором и сохраняет все данные в этом конкретном сгенерированном идентификаторе.
Вы указываете идентификатор документа в .document(), чтобы он перезаписал тот же документ. Если вам нужен документ со случайным идентификатором при каждом клике, попробуйте вместо этого использовать add(), как показано ниже:
val collectionRef = FirebaseFirestore.getInstance().collection("Maintainance")
collectionRef.add(user).addOnCompleteListener(...)
Кроме того, вы можете оставить .document() пустым, чтобы получить DocumentReference со случайным идентификатором:
val userDocument = FirebaseFirestore.getInstance().collection("Maintanance").document() // <-- don't pass an ID
В дополнение к ответу @Dharmaraj:
CASE_1: В случае, когда вам нужно отслеживать все отправленные формы каждого пользователя, вероятно, из вашего объяснения вам может потребоваться упорядочить форму каждого пользователя. Поэтому, если вам нужно организовать форму каждого пользователя, создайте еще одну вложенную коллекцию [пример: документ (userId). collection («USER_FORMS»)] в документе с идентификатором пользователя, например:
val documentRef = FirebaseFirestore.getInstance().collection("Maintainance").document(UserUtils.user?.id.toString()).collection("USER_FROMS").document();
CASE_2 : В случае, если вам нужно создать собственный идентификатор документа:
1- сделать случайное число или строку или любой другой тип данных.
2- Случайное число/строковая переменная должна быть локальной для блока/метода кода, который будет выполнять функцию отправки формы.
3- используйте число/строку, сгенерированную в качестве идентификатора документа формы, например:
//This must be local so as user clicks submision button so as it generates new random number;
val randomFormId = "generateThenumberOrStringAndInitializeTheVariable";
Затем используйте случайное число в качестве идентификатора документа формы следующим образом:
val documentRef = FirebaseFirestore.getInstance().collection("Maintainance").document(UserUtils.user?.id.toString()).collection("USER_FROMS").document(randomFormId);