我正试图把一份文件写到收藏品上,直到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).我又重新输入了数据。我在两个编辑中运行了一个regexp。我似乎不能把它搞得头破血流。
数据类型:
//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发布于 2021-09-10 19:59:48
您发送的所有数据都必须是Firebase中接受的数据之一,即:字符串、数字、列表、地图、布尔..etc
确保您要发送的数据不是您定义的对象。从你的帖子,我怀疑这些:playHand和_daysOfWeek。
尝试删除它们并测试它是否有效,或者在您的模型中创建一个toMap()方法。
其他需要考虑的问题:
如果您最近更改了null.
发布于 2021-09-11 16:13:07
此问题是由firestore.rules文件中的错误引起的。确切地说是语法错误。
https://stackoverflow.com/questions/69137424
复制相似问题