【问题标题】:Firestore: Invalid document reference. Document references must have an even number of segments,Firestore:无效的文档参考。文档引用必须有偶数个段,
【发布时间】:2020-07-20 16:19:01
【问题描述】:

我有一个 futter 应用程序,希望将用户最喜欢的项目添加到单独的集合“userFavorites”中,该集合将根据当前用户 uid 存储所有最喜欢的项目:

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

    Future<void> toggleFavoriteStatus() async{

    var userId = await getCurrentUser();

    final oldStatus = isFavorite;
    isFavorite = !isFavorite;
    notifyListeners();
    try{
     await Firestore.instance.collection("userFavorites/$userId").document(id).updateData({
           'isFavorite': isFavorite,
         });
    }catch(error){
      _setFavValue(oldStatus);
     }
}

但是当我尝试收藏任何项目时收到此错误:

Invalid document reference. Document references must have an even number of segments, but userFavorites/FRbYxmNpSBcda6XOrQUjukvFvVb2/q7eLxtZfhG3g6Pd1bYY4 has 3
E/MethodChannel#plugins.flutter.io/cloud_firestore(14551):  at com.google.firebase.firestore.DocumentReference.forPath(com.google.firebase:firebase-firestore@@21.3.0:80)

【问题讨论】:

    标签: firebase flutter google-cloud-firestore


    【解决方案1】:

    错误信息:

    无效的文档参考。文档引用必须有偶数个段,但 userFavorites/FRbYxmNpSBcda6XOrQUjukvFvVb2/q7eLxtZfhG3g6Pd1bYY4 有 3 个

    告诉你你建立了一个文件的路径:

    userFavorites/FRbYxmNpSBcda6XOrQUjukvFvVb2/q7eLxtZfhG3g6Pd1bYY4

    它看起来根本不像一个文档,因为它有三个路径段:

    1. 用户收藏
    2. FRbYxmNpSBcda6XOrQUjukvFvVb2
    3. q7eLxtZfhG3g6Pd1bYY4

    这是构建路径的代码行:

    Firestore.instance.collection("userFavorites/$userId").document(id)
    

    由于我们看不到您的数据,因此很难判断您在这里的实际意图。但无论如何,Firestore 将“userFavorites”作为顶级集合的名称,“FRbYxmNpSBcda6XOrQUjukvFvVb2”是该集合中文档的名称,“q7eLxtZfhG3g6Pd1bYY4”表示该文档下的子集合。如果你的意思是别的,你必须弄清楚如何构建该文档的路径来查询它。

    【讨论】:

    • 我按照您的描述创建了一个集合集合,现在可以使用了.. 谢谢
    【解决方案2】:

    我使用文档引用而不是使用 [document_reference].path 遇到了这个问题,我使用 ID 访问它:[document_reference].id 这为我解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2019-04-17
      • 2018-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-27
      • 1970-01-01
      • 2019-05-24
      • 2022-06-16
      相关资源
      最近更新 更多