[英]Google Apps Script UrlFetchApp.fetch HTTP PUT Request to firebase not working
我正在尝试使用Google Apps脚本HTTP PUT请求将数据写入Firebase数据库。 这是我的代码。 我调试了每一行,除了实际的PUT请求之外,其他所有东西都可以正常工作。
带有一个按钮的网页。
<section>
<input onclick="WriteInput()" type="button" value="Save Input">
</section>
<script>
function onSuccess() {
alert("on success ran");
};
function onFailure() {
alert("on failure ran");
};
function WriteInput() {
alert("it ran");
google.script.run.withFailureHandler(onFailure)
.withSuccessHandler(onSuccess)
.putToFire();
}
</script>
这是服务器端的.gs代码:
function doGet(){
return HtmlService.createTemplateFromFile('WriteToFirebase')
.evaluate() // evaluate MUST come before setting the NATIVE mode
.setTitle('Test Write')
.setSandboxMode(HtmlService.SandboxMode.NATIVE);
}
function putToFire() {
var payload =
{
"first" : "Jack",
"last" : "Sparrow"
};
var options =
{
"method" : "put",
"payload" : payload
};
UrlFetchApp.fetch("https://SampleChat.firebaseIO-demo.com/users/fred/name.json", options );
Logger.log(options);
}
这是用于通过Apps脚本发出HTTP请求的Google文档:
这是Firebase REST API文档:
在cURL -X
中设置请求的类型。 例如PUT,POST等, -d
表示要遵循的数据:与Google Fetch
匹配的是设置params
。
我一定只是缺少语法设置或其他东西。
我实际上找到了解决我问题的方法。 我不记得是什么错误消息。 我变了
这个:
var options =
{
"method" : "put",
"payload" : payload
};
对此:
var options = {"method" : "put", "payload" : payload};
它开始工作。 我猜想多行代码中end of line
return
字符,Firebase无法解析。 那只是我的猜测。
此示例显示了payload
, options
和Apps Script
UrlFetchApp.fetch
服务。
var payload = "{\"aa\" : \"" + UserID + "\", \"ab\" : \"" + Maker + "\", \"ac\" : " +
AskingPrice + ", \"ad\" : \"" + Type +
"\", \"ae\" : \"" + Description + "\", \"af\" : \"" + Function + "\", \"ag\" : \"" +
Cosmetic + "\", \"ah\" : \"" + dbID +
"\", \"ai\" : \"" + IPaddr + "\"}";
var options = {"method" : "put", "payload" : payload};
UrlFetchApp.fetch("https://MyFireBaseDatabaseName.com/" + Ctgry + "/"
+ dbID + "/.json", options );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.