Firestore JSON解析终止问题求助:多种尝试仍未解决
问题解决:Firestore JSON解析终止错误
问题根源
你代码里的jsonData用单引号包裹,这在Go里是错误写法——Go的字符串字面量必须用双引号或反引号定义,单引号仅用于表示单个rune字符。这种错误会导致Go无法正确识别完整的JSON字符串,传递给Firestore的内容实际不完整或格式错误,最终触发解析终止报错。
修正方案
方案1:双引号包裹+内部转义
把外层单引号换成双引号,内部JSON里的双引号用\转义:
jsonData := "{\"select\": {\"fields\": [{\"fieldPath\": \"name1\"}]}, \"from\": [{\"collectionId\": \"collec\"}], \"where\": {\"fieldFilter\": {\"field\": {\"fieldPath\": \"name2\"}, \"op\": \"EQUAL\", \"value\": {\"stringValue\": \"mac\"}}}}"
方案2:反引号定义原始字符串
用反引号`包裹整个JSON,内部双引号无需转义,代码更易读:
jsonData := `{"select": {"fields": [{"fieldPath": "name1"}]}, "from": [{"collectionId": "collec"}], "where": {"fieldFilter": {"field": {"fieldPath": "name2"}, "op": "EQUAL", "value": {"stringValue": "mac"}}}}`
验证逻辑
虽然你用JSON格式化工具验证结构合法,但Go层面的字符串定义错误直接破坏了JSON的完整性。修正写法后,Firestore能接收到完整合法的JSON payload,解析终止问题会消失。
内容的提问来源于stack exchange,提问作者Ahmed Alsmairy
相关产品推荐
相关产品推荐

