首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >客户端指定了一个无效参数。

客户端指定了一个无效参数。
EN

Stack Overflow用户
提问于 2021-09-10 19:55:28
回答 2查看 750关注 0票数 1

我正试图把一份文件写到收藏品上,直到12小时前它才开始工作。

我试图写的数据:

代码语言:javascript
复制
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);

错误:

代码语言:javascript
复制
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。我似乎不能把它搞得头破血流。

数据类型:

代码语言:javascript
复制
//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:

代码语言:javascript
复制
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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-10 19:59:48

您发送的所有数据都必须是Firebase中接受的数据之一,即:字符串、数字、列表、地图、布尔..etc

确保您要发送的数据不是您定义的对象。从你的帖子,我怀疑这些:playHand_daysOfWeek

尝试删除它们并测试它是否有效,或者在您的模型中创建一个toMap()方法。

其他需要考虑的问题:

如果您最近更改了null.

  • Your修复规则,请确保您没有遗漏一些东西。
票数 1
EN

Stack Overflow用户

发布于 2021-09-11 16:13:07

此问题是由firestore.rules文件中的错误引起的。确切地说是语法错误。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69137424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档