首页 > 解决方案 > Flutter firebase firestore:'path.isNotEmpty':文档路径必须是非空字符串)

问题描述

我正在尝试为我的颤振应用程序制作聊天应用程序。但是每次我尝试点击聊天时总是会出现这个错误。错误 谁能告诉我我的代码有什么问题。

readLocal() async {
prefs = await SharedPreferences.getInstance();
id = prefs.getString('id') ?? '';
if (id.hashCode <= peerId.hashCode) {
  groupChatId = '$id-$peerId';
} else {
  groupChatId = '$peerId-$id';
}
FirebaseFirestore.instance
    .collection('users')
    .doc(id)
    .update({'chattingWith': peerId});

setState(() {});

}

标签: firebaseflutterchat

解决方案


如果看起来您的id变量是一个空字符串,则它不是要传递到的有效文档 ID doc()

鉴于您的初始化方式id

id = prefs.getString('id') ?? '';

似乎prefs.getString('id')返回null。当这种情况发生时,你会想弄清楚你想做什么,但一个简单的方法是检查:

id = prefs.getString('id');
if (!id.isEmpty) {
  if (id.hashCode <= peerId.hashCode) {
    groupChatId = '$id-$peerId';
  } else {
    groupChatId = '$peerId-$id';
  }
  FirebaseFirestore.instance
    .collection('users')
    .doc(id)
    .update({'chattingWith': peerId});

  setState(() {});
}

推荐阅读