Как настроить регистрацию flutter

# #flutter #google-cloud-firestore #firebase-authentication

Вопрос:

У меня уже настроена аутентификация по телефону, я хочу собрать имя пользователя, название компании и местоположение. Пользователь входит в приложение, а затем он должен заполнить остальные данные(имя, название компании и местоположение).

Ниже приведен код, который у меня есть прямо сейчас, но каждый раз, когда пользователь регистрируется и добавляет свою информацию, в firebase создается новый документ. Номер телефона хранится в другом документе, а информация о пользователе сохраняется в другом. Что я в основном хочу, так это обновить тот же документ, в котором указан номер телефона, чтобы в документе содержался номер телефона и информация!

Уже Спасибо!

введите описание изображения здесь

Код Флаттера:

 CollectionReference users = FirebaseFirestore.instance.collection("users");  String textNote;  String companyName;  

 SizedBox(  width: 320,  child: Container(  child: ElevatedButton(  onPressed: () async {  await users.add({  'name': textNote,  'company name': companyName,  }).then((value) =gt; print('User Added'))  ;  },  child: Text(  "SEND",  style: TextStyle(  color: Colors.white,  ),  ),  ),  ),  ),  

введите описание изображения здесь

Ответ №1:

Эта строка ниже добавляет новый документ в коллекцию пользователей:

 await users.add({  'name': textNote,  'company name': companyName, })  

если вы попытаетесь добавить номер телефона таким же образом, он добавит его в новый документ.

Скорее, вы должны использовать set не add . С помощью set вы можете передать идентификатор документа, в который вы хотите сохранить данные (в данном случае ваш идентификатор пользователя). например:

 CollectionReference users = FirebaseFirestore.instance.collection("users");  // to add name and company name // user.uid is the uid of the user. users.doc(user.uid).set({  'name': textNote,  'company name': companyName, });  // to add phone no; users.doc(user.uid).set({'phone_no': phone_no}, SetOptions(merge: true)); // NB: Please note the SetOptions which should prevent it from overwriting // the first data.  

Комментарии:

1. Спасибо за ответ, я получаю следующую ошибку. Неопределенное имя «пользователь».

2. user.uid является текущим пользователем firebase и может быть получен от User user = FirebaseAuth.instance.currentUser;