Попытка выяснить, как исправить ошибку, которую я получаю, когда пытаюсь, и создать запрос из моей коллекции CollectionReference. Я думал, что есть способ сделать это (и, возможно, есть, и я просто терплю неудачу), но я продолжаю получать сообщение об ошибке this из приложения, и если я изменяю CollectionReference на Query, возвращаем " await userCollection.document (testData) .setData ... часть начинает возвращать ошибку.
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:myapp/models/camper.dart';
import 'package:myapp/models/user.dart';
import 'package:myapp/shared/globals.dart' as globals;
String collectionData = globals.testuid;
class DatabaseService {
final String uid;
DatabaseService({this.uid});
String testData = globals.testData;
//Collection Reference
CollectionReference userCollection = Firestore.instance
.collection(collectionData)
.where('CamperID', isEqualTo: '1');
updateUserData(String userId, String name, String evening_activity, String morning_activity,
String school, String camperID) async {
return await userCollection.document(testData).setData({
'userId': userId,
'name': name,
'evening_activity': evening_activity,
'morning_activity': morning_activity,
'school': school,
'camperID': camperID,
});
}
// User List from Snapshot
List<Camper> _userListFromSnapshot(QuerySnapshot snapshot) {
return snapshot.documents.map((doc) {
return Camper(
name: doc.data['name'] ?? 'Default Data',
school: doc.data['school'] ?? 'Default Data',
evening_activity: doc.data['evening_activity'] ?? 'Default Data',
morning_activity: doc.data['morning_activity'] ?? 'Default Data',
userId: doc.data['userId'] ?? '0',
camperID: doc.data['camperID'] ?? '0',
);
}).toList();
}
//userData from snapshot
UserData _userDataFromSnapshot(DocumentSnapshot snapshot) {
return UserData(
uid: uid,
name: snapshot.data['name'],
morning_activity: snapshot.data['morning_activity'],
evening_activity: snapshot.data['evening_activity'],
school: snapshot.data['school'],
camperID: snapshot.data['camperID'],
);
}
//Get User Stream
Stream<List<Camper>> get users {
return userCollection.snapshots().map(_userListFromSnapshot);
}
//Get user doc stream
Stream<UserData> get userData {
return userCollection.document(uid).snapshots().map(_userDataFromSnapshot);
}
}
Добавлена структура базы данных в виде скриншота