/ / Google Apps Script UrlFetchApp.fetch HTTP PUT Запит на базу даних не працює - google-apps-script, firebase

Сценарій Google Apps UrlFetchApp.fetch HTTP PUT Запит на firebase не працює - google-apps-script, firebase

Я намагаюся записати дані у базу даних Firebaseза допомогою запиту Google Apps Script HTTP PUT. Ось що я маю для коду. Я налагодив кожен рядок, і все працює, крім власне запиту 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);

}

Ось документація Google для надсилання запиту HTTP із сценарієм Apps:

отримати URL-адресу Google

Це документація Firebase REST API:

API REST для Firebase

в cURL -X полягає у встановленні типу запиту. Наприклад PUT, POST та ін -d - це вказівка ​​на те, що дані повинні слідувати: Матч з Google Fetch - встановити значення params.

Напевно, мені просто не вистачає налаштування синтаксису чи чогось іншого.

Відповіді:

1 для відповіді № 1

Я насправді знайшов відповідь на свою проблему. Я не можу згадати, що таке повідомлення про помилку. Я змінив

THIS:

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 );