Flutter – PlatformException : error, Invalid document reference. Document references must have an even number of segments, but users has 1, null

Issue

I wanted to get my users data from cloud firestore. It worked first but now it is raising a error.

“PlatformException (PlatformException(error, Invalid document reference. Document references must have an even number of segments, but users has 1, null))”

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());
    }
  }

Solution

This is almost certainly because uID is an empty string. Check it before passing to Firestore.

Answered By – Doug Stevenson

Answer Checked By – Gilberto Lyons (FlutterFixes Admin)

Leave a Reply

Your email address will not be published. Required fields are marked *