Flutter Firebase добавление другой пользовательской информации, такой как адрес, в базу данных - PullRequest
0 голосов
/ 27 октября 2019

В настоящее время я работаю над Flutter Firebase, чтобы сохранить информацию о пользователях, которые подписываются на приложение.

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

Что ясделано:

AuthResult user = await 
FirebaseAuth.instance.createUserWithEmailAndPassword(email: _email,password:_password);

Это сохранит электронную почту и пароль пользователя в базе данных.

Я пробовал решение на: Регистрация пользователя Flutter с помощью Firebase: Добавить дополнительную информацию о пользователе (возраст, имя пользователя)

Что я пытался сделать:

Firestore.instance.collection('users').document().setData({ 'userid': 
user.uid, 'username': _address });

И мне кажется, что я получаю ошибки, что Firestore - это неопределенное имя, а uid не определен для класса 'AuthResult'. Я пропускаю некоторые файлы импорта?

Я только импортировал:

import 'package:firebase_auth/firebase_auth.dart';

Кроме того, я знаю, что мне нужно создать таблицу с именем пользователя, чтобы позволить сохранять данные, но в которыходин я использую? Облачное хранилище или база данных в реальном времени?

Спасибо за помощь.

1 Ответ

0 голосов
/ 27 октября 2019

У вас есть много вопросов, спрятанных в одном вопросе. Ниже я постараюсь ответить на столько, сколько смогу, но в будущем постараюсь придерживаться одного вопроса.


Рекомендовать одну базу данных другой - не по теме переполнения стека. Но я бы рекомендовал прочитать документацию по Firebase здесь .

Поскольку вы начали работать с Cloud Firestore, давайте сосредоточимся на этом.


Вам понадобитсяимпортировать плагин для Firestore, как вы сделали с плагином с аутентификацией. Так что-то вроде:

import 'package:cloud_firestore/cloud_firestore.dart';

Как вы обнаружили, свойства AuthResult.uid нет. В таких случаях я рекомендую просмотреть справочную документацию для плагина , что позволяет довольно легко понять, что AuthResult.user - это, вероятно, путь.

Так что-то вроде:

AuthResult result = await 
FirebaseAuth.instance.createUserWithEmailAndPassword(email: _email,password:_password);
User user = result.user;

Не решение вопроса, который вы задаете, но, пожалуйста, используйте document(user.uid) вместо document(). То, что у вас теперь есть, генерирует идентификатор документа, хотя идиоматично (и намного проще) использовать UID в качестве ключа в коллекции users.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...