Flutter-PlatformException:错误,无效的文档参考。文档引用的段数必须为偶数,但用户的段数为1,则为null

时间:2020-03-15 18:39:42

标签: firebase flutter dart google-cloud-firestore flutter-test

我想从Cloud Firestore获取用户数据。它首先起作用,但现在却引发了错误。

“ PlatformException(PlatformException(错误,无效的文档引用。文档引用必须具有偶数个段,但用户具有1,空值))”

String name = "", email = "", pnumber = "", imgUrl = "", bio = "", posted = "", applied = "", rating = "", saved = "";
String url;
final formKey = new GlobalKey<FormState>();
final databaseReference = Firestore.instance;

String uID;

  @override

  void initState() {

    super.initState();
    uID = widget.uID;
    print("UID  " + uID);
    getUser();
  }

void getUser() {
    try {
      databaseReference
          .collection('users')
          .document(uID)
          .get()
          .then((DocumentSnapshot ds){
        if (ds.exists) {
          name = ds.data['fullname'].toString();
          print(name);
          email = ds.data['email'].toString();
          print(email);
          pnumber = ds.data['pnumber'].toString();
          print(pnumber);
          imgUrl = ds.data['imgUrl'].toString();
          print(imgUrl);
          bio = ds.data['bio'].toString();
          print(bio);
          posted = ds.data['posted'].toString();
          print(posted);
          applied = ds.data['applied'].toString();
          print(applied);
          rating = ds.data['rating'].toString();
          print(rating);
          saved = ds.data['saved'].toString();
          print(saved);
          print(ds.data['fullname'].toString());

        } else {
          print("No such user");
        }
      });
    } catch (e) {
      print(e.toString());
    }
  }

1 个答案:

答案 0 :(得分:1)

这几乎可以肯定是因为uID是一个空字符串。在传递给Firestore之前先进行检查。