У вас несоответствие между вашим запросом и способом хранения ваших данных.
Вы сохраняете свои данные как:
Firestore.instance
.collection('u')
.document(firebaseUser.uid)
.setData({
'coins': coins,
});
Таким образом, каждый пользователь хранится в документе, который имеет свои UID в качестве ключа, и в нем есть одно поле с именем coins
.
Затем, когда вы пытаетесь загрузить этот документ, вы делаете:
final QuerySnapshot result = await Firestore.instance
.collection('u')
.where('id', isEqualTo: firebaseUser.uid)
.getDocuments();
Этот запрос ищет документы, которые имеют поле id
со значением UID пользователя. А поскольку ваши документы содержат только поле coins
, нет документа, соответствующего этому запросу.
Решение состоит в том, чтобы использовать прямой поиск документа пользователя вместо запроса:
final DocumentSnapshot result = await Firestore.instance
.collection('u')
.document(firebaseUser.uid)
.get();
if (!documents.exists) {
...