我正在尝试向集合写入文档,直到12小时前它还在工作。
我尝试写入的数据:
var uploadData = {
'date_of_birth': _dateOfBirth,
'name': _name,
'hip_size': _hipSize,
'height': _height,
'tennis_level': _tennisLevel,
'days_available': _daysOfWeek,
'weight': _weight,
'image': imageUrl,
'secondary_courts': [],
'travel_range': _travelRange.km,
'travel_range_name': _travelRange.rangeName,
'play_hand': playHand,
};
await firestore.collection('users').doc(user.user.uid).set(uploadData);
错误:
W/Firestore( 8153): (23.0.1) [WriteStream]: (43c3cb2) Stream closed with status: Status{code=INVALID_ARGUMENT, description=Error compiling rules:
W/Firestore( 8153): L25:1 Unexpected '<EOF>'.
W/Firestore( 8153): L25:1 missing '}' at '<EOF>', cause=null}.
[cloud_firestore/invalid-argument] Client specified an invalid argument. Note that this differs from failed-precondition. invalid-argument indicates arguments that are problematic regardless of the state of the system (e.g., an invalid field name).
我重新输入了一遍数据。我在两个编辑器中运行了一个正则表达式。我似乎不能理解它。
数据类型:
//Profile and login Data
String _email;
String _password;
DateTime _dateOfBirth;
Map<String, String> _name = {
'first_name': '',
'middle_name': '',
'last_name': '',
'full_name': '',
};
double _hipSize;
double _weight;
Map<String, int> _height = {
'feet': 0,
'inches': 0,
};
double _tennisLevel;
Map<String, bool> _daysOfWeek = {
'sunday': false,
'monday': false,
'tuesday': false,
'wednesday': false,
'thursday': false,
'friday': false,
'saturday': false,
};
List<TennisCourt> _tennisCourts = [];
File _profileImage;
String _daysAvailable = '';
TravelRange _travelRange;
bool isRightHanded = true;
String playHand = isRightHanded ? 'right' : 'left';
我还记录了所有数据的runTimeTypes:
date_of_birth: DateTime
name: _InternalLinkedHashMap<String, String>
hip_size: double
height: _InternalLinkedHashMap<String, int>
tennis_level: double
days_available: _InternalLinkedHashMap<String, bool>
weight: double
image: String
secondary_courts: List<dynamic>
travel_range: double
travel_range_name: String
play_hand: String
3条答案
按热度按时间31moq8wy1#
您发送的所有数据必须是Firebase中接受的数据之一,即:字符串、数字、列表、Map、布尔值等
请确保您发送的数据不是您定义的对象。从您的帖子中,我怀疑这些:
playHand
和_daysOfWeek
。尝试删除它们并测试它是否有效,或者在您的模型中创建一个
toMap()
方法。要考虑的其他要点:
null
。kdfy810k2#
此问题是由
firestore.rules
文件中的错误引起的。确切地说是语法错误。hm2xizp93#
在我的例子中,我过滤了同一个字段两次,所以我删除了它,它就解决了。