Как я могу получить доступ к Firebase данных с помощью Flutter - PullRequest
1 голос
/ 20 июня 2020

Я пытаюсь заполнить свой объект CurrentUser той же информацией, что и uid зарегистрированного пользователя, когда мои пользователи входят в приложение

My databaseService:

final CollectionReference userCollection =
  Firestore.instance.collection('users');

Future<User> getCurrentUserData(String uid) async{
var doc = userCollection.document(uid);

And My Домашняя страница:

class HomeScreen extends StatefulWidget {
final FirebaseUser currentUser;
HomeScreen({@required this.currentUser});

@override
_HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {

И моя модель CurrentUser:

class CurrentUser {
static String name;
static String lastName;
static String uid;
static String phone;
static String addresses;
static String photoString;
static int cityId;
static int districtId;
static List<Loss> userLosses;
}

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

Ответы [ 2 ]

1 голос
/ 20 июня 2020

Я считаю это так:

Future<User> getCurrentUserData(String uid)async {
var docRef = await userCollection.document(uid).get();
User currentUser = User.fromJson(docRef.data);
currentUser.uid=docRef.documentID;
return currentUser;
}

docRef.data - это map и просто меняю свой класс пользователя следующим образом:

factory User.fromJson(Map<String, dynamic> json) {
return User(
    name: json['Name'].toString(),
    lastName: json['LastName'].toString(),
    phone: json['Phone'].toString(),
    photoString: json['PhotoString'].toString(),
    districtId: int.parse(json['DistrictId'].toString()),
    cityId: int.parse(json['CityId'].toString()),
    addresses: json['Addresess'].toString());
}
1 голос
/ 20 июня 2020

Если вы используете аутентификацию firebase, вы можете использовать FiresbaseAuth.instance.currentUser, он вернет объект FirebaseUser, который будет содержать информацию о текущем пользователе.

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