Flterster Firestore, взаимодействующий с пользователем? - PullRequest
0 голосов
/ 09 октября 2018

Flutter: я использую Streambuilder для прослушивания данных Firestore, которые прекрасно работают.

Однако я хотел бы уведомить пользователя об изменении определенных условий в Firestore, позволить ему ответить и записать это обратно в Firestore.

выполнимо (в флаттере / дротике)?

Заранее спасибо.

Best, / j

StreamBuilder(
  stream: Firestore.instance.collection('users').snapshots(),
  builder: (context, snapshot) {
    if (!snapshot.hasData) return const Text('Loading...');
    List<DocumentSnapshot> documents = snapshot.data.documents;
    documents.forEach((doc) {
        if (doc['Invited']) {
            **// notify current user that he is invited, 
            // let him reply yes/no, write that value back to Firestore**
        }
    }
  },
);

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Если я вас правильно понимаю, вы хотите что-то обновить, как только пользователь получит приглашение.Вы можете сделать это, используя код, подобный следующему:

Future<Null> updateUser{
  @required String userId,
  bool accepted,
}) {
  assert(userId != null && userId.isNotEmpty);

  // create map that contains all fields to update
  Map<String, dynamic> dataToUpdate = {
      "accepted": accepted,
  };

  // get the reference to the user you want to update
  final userRef = references.users(userId);

  // update the user
  return userRef.updateData(dataToUpdate);
} 

Вы можете получить ссылку из своего документа, используя doc.reference .Будущее завершится, если обновление прошло успешно, или завершится с ошибкой, если что-то пойдет не так.

0 голосов
/ 09 октября 2018

Есть ли точка, по которой вы не хотите использовать Firebase Messaging ?

1) Firestore вызывает уведомление

2) Ваше приложение получает уведомление

3) Ваше приложение обрабатывает уведомление, возможно, что пользователь не увидит уведомление в строке состояния.

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