Flutter & Firebase - 从文档中获取特定字段

Posted

技术标签:

【中文标题】Flutter & Firebase - 从文档中获取特定字段【英文标题】:Flutter & Firebase - Get a specific field from document 【发布时间】:2021-07-04 20:51:51 【问题描述】:

我一直在尝试从特定文档中获取特定字段。我需要toWho的令牌。但我总是为空。我该如何解决这个问题?

主代码是

Future<String> getUserToken(String toWho) async 
    DocumentSnapshot _doc = await FirebaseFirestore.instance.doc("tokens/" + toWho).get();
    if (_doc != null) 
      Map<String, dynamic> _data = _doc.data();
      return _data["token"];
     else 
      return null;
    

在存储库中

Future<bool> sendMessage(
      MessageModel sendingMessage, UserModel currentUser) async 
    if (appMode == AppMode.DEBUG) 
      return true;
     else 
      var _writePrcs = await _firestoreDBService.saveMessage(sendingMessage);
      if (_writePrcs) 
        var _token = "";
        if (_userToken.containsKey(sendingMessage.toWho)) 
          _token = _userToken[sendingMessage.toWho];
          print("Token lokalden geldi.");
         else 
          _token = await _firestoreDBService.getUserToken(sendingMessage.toWho);
          _userToken[sendingMessage.toWho] = _token;

          print("Token  veritabanından geldi.");
        

从现在开始感谢您的帮助

【问题讨论】:

【参考方案1】:
Try ........... 


 Future<String> getUserToken(String toWho) async 
    DocumentSnapshot _doc = await 
    FirebaseFirestore.instance.collection("tokens/groupChatId/message").doc(toWho).get();
      if (_doc != null) 
         Map<String, dynamic> _data = _doc.data();
         return _data["token"];
       else 
        return null;
   

【讨论】:

试过但得到了相同的----[ERROR:flutter/lib/ui/ui_dart_state.cc(186)] 未处理的异常:NoSuchMethodError:方法'[]'被调用为空。 E/flutter (10259): 接收者: null E/flutter (10259): 尝试调用: []("token") 发送您的 Firestore 结构的屏幕截图 添加结构 没有称为token的字段。在“消息”中

以上是关于Flutter & Firebase - 从文档中获取特定字段的主要内容,如果未能解决你的问题,请参考以下文章

Flutter & Firebase:如何检查某个项目是不是存在于 Firebase 文档中的数组中

Flutter & firebase - StreamBuilder 未加载

Flutter 2 - firebase_remote_config 0.6.0 & firebase_core ^0.7.0 版本冲突

Flutter & Firebase - 从文档中获取特定字段

检查用户是不是登录 Flutter & firebase auth |

从 QuerySnapshot 和 Listview Builder (Flutter & Firebase) 中排除文档