Flutter Firestore,是否与用户互动?

时间:2018-10-09 12:53:09

标签: flutter google-cloud-firestore

Flutter:我正在使用Streambuilder收听效果很好的Firestore数据。

但是,我想做的是在Firestore中的某些条件发生变化时通知用户,让他响应并将其写回Firestore。

可以(在Flutter / Dart中)吗?

先谢谢了。

最好, / 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 :(得分:0)

您是否不想使用Firebase Messaging

1)Firestore触发通知

2)您的应用收到通知

3)您的应用程序处理了通知,用户应该在状态栏中看不到通知。

答案 1 :(得分:0)

如果我正确理解您的要求,则希望在用户收到邀请后立即进行更新。您可以使用以下代码来做到这一点:

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 从文档中获取参考。如果更新成功,则Future将完成;如果出现问题,则将以错误终止。