Flutter Firebase - Как добавить идентификатор пользователя в документ - PullRequest
0 голосов
/ 20 июня 2020

Я хочу добавить uid пользователя к любому добавленному документу.

Мне удалось получить uid с помощью следующего кода:

Future getCurrentUser() async {
  final FirebaseUser user = await _auth.currentUser();
  final uid = user.uid;
  print(uid);
  return uid.toString();
}

и я хочу добавить его сюда:

void addData(){
  databaseReference.collection(("ads"))
    .add({
      'category': '$category',
      'location': '$location',
      'subject': '$adName',
      'userId': '$userid',
  });
}

и когда я пытаюсь определить идентификатор пользователя переменной в классе, я получаю следующую ошибку:

error: Ожидается член класса. (expected_class_member в [hpxksa]

lib / Screens / add_ad.dart: 59) ошибка: в инициализаторах доступны только члены stati c.

и если я объявлю это внутри виджета, он будет записан в базе данных следующим образом:

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

1 Ответ

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

getCurrentUser() является асинхронным, поэтому он возвращает экземпляр Future, вам необходимо сделать следующее:

void addData()async{
  String userid = await getCurrentUser();
  databaseReference.collection("ads").add({
      'category': '$category',
      'location': '$location',
      'subject': '$adName',
      'userId': '$userid',
  });
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...