В настоящее время я переношу весь свой устаревший код в новейшую версию firebase, и когда я обновил зависимость firebase, это дало мне ошибку, что метод setData не определен для типа ' ссылка на документ'.
class DatabaseService {
final String uid;
DatabaseService({ this.uid });
// Collection reference
// final CollectionReference brewCollection = FirebaseFirestore.instance.collection('brews');
final CollectionReference<Map<String, dynamic>> brewCollection = FirebaseFirestore.instance.collection('brews');
Future updateUserData(String sugars, String name, int strength) async {
return await brewCollection.doc(uid).setData({
'sugars' : sugars,
'name' : name,
'strength' : strength
});
}
// Brew list from snapshot
List<Brew> _brewListFromSnapshot(QuerySnapshot snapshot) {
return snapshot.docs.map((doc){
return Brew(
name: doc.data['name'] ?? '',
strength: doc.data['strength'] ?? 0,
sugars: doc.data['sugars'] ?? '0'
);
}).toList();
}
// Get brews stream
Stream<List<Brew>> get brews {
return brewCollection.snapshots().map(_brewListFromSnapshot);
}
UserData _userDataFromSnapshot(DocumentSnapshot snapshot) {
return UserData(
uid: uid,
name: snapshot.data['name'],
sugars: snapshot.data['sugars'],
strength: snapshot.data['strength']
);
}
// Get user document
Stream<UserData> get userData {
return brewCollection.doc(uid).snapshots().map(_userDataFromSnapshot);
}
}
Спасибо за предложение, я просмотрел документацию, и это очень помогло! У меня просто проблема со строковыми и целочисленными значениями, которые я назначаю «Варить». В частности, значения внутри метода данных. Теперь говорится, что объект '[]' не определен для функции объекта типа. Я уверен, что это просто синтаксическая ошибка, которую я не улавливаю, которая приходит с новым обновлением firebase, но я не слишком уверен. Спасибо за помощь!
Возможно, вы захотите поискать это новое сообщение об ошибке, поскольку я видел, как оно часто всплывает за последние несколько месяцев, и исправление всегда очень похоже.
Спасибо за вклад, я нашел эту тему, которая ответила на вопрос. coderhelper.com/questions/68615606/…