【发布时间】:2020-07-02 01:33:23
【问题描述】:
因此,我一直在为我正在从事的 Godot 项目的 REST API 后端使用 firebase firestore 功能。我正在使用 HTTP 请求从数据库中发布和获取数据。到目前为止,我只使用了简单类型的数据,将一个用户的 ID 作为字符串与他或她的用户名相关联。
在我的代码中,我定义了一个函数,负责通过 HTTP 请求实际保存新文件:
func save_document(path: String, fields: Dictionary, http: HTTPRequest) -> void:
var document = { "fields": fields }
var body = to_json(document)
var url = FIRESTORE_URL + path
var res = http.request(url, _get_request_headers(), false, HTTPClient.METHOD_POST, body)
if res == OK:
print("successfully created document")
else:
print("failed creating document")
然后我调用函数:
var payload_body_1 = {
"name": {
"stringValue": username.text
}
}
save_document("users?documentId=%s" % firebase.user_info.id, payload_body_1, http)
以上所有方法都可以 100% 正常工作。但是当我尝试发布更复杂的数据时,例如字典的字典,我遇到了一些问题。
当我运行以下代码时:
var res = {
"north": {"spades": [], "hearts": [], "diamonds": [], "clubs": []},
"south": {"spades": [], "hearts": [], "diamonds": [], "clubs": []},
"east": {"spades": [], "hearts": [], "diamonds": [], "clubs": []},
"west": {"spades": [], "hearts": [], "diamonds": [], "clubs": []},
}
save_document("online?documentId=test", res, http)
它不起作用。我想它与我在它工作的情况下使用的“stringValue”键有关,但我似乎无法弄清楚当值不是字符串值时该怎么做。有谁知道如何解决这个问题?
【问题讨论】:
标签: firebase google-cloud-firestore godot gdscript