/ / Google Apps Script UrlFetchApp.fetch Solicitação HTTP PUT para firebase não funciona - google-apps-script, firebase

Script do Google Apps UrlFetchApp.fetch HTTP PUT Solicitação para que o Firebase não funcione - google-apps-script, firebase

Estou tentando gravar dados em um banco de dados Firebaseusando a solicitação HTTP PUT do Google Apps Script. Aqui está o que eu tenho como código. Eu depurei todas as linhas e tudo funciona, exceto para a solicitação PUT real.

Página da Web com um botão.

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

Este é o código .gs do lado do servidor:

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

}

Esta é a documentação do Google para emitir uma solicitação HTTP com o Apps Script:

buscar url de documentação do Google

Esta é a documentação da API REST do Firebase:

API REST do Firebase

dentro cURL -X é definir o tipo de solicitação. Por exemplo. PUT, POST, etc e -d é o indicar que os dados devem seguir: A correspondência com o Google Fetch é definir o params.

Devo estar faltando apenas uma configuração de sintaxe ou algo assim.

Respostas:

1 para resposta № 1

Na verdade, encontrei uma resposta para o meu problema. Não consigo me lembrar qual era a mensagem de erro. Eu mudei

ISTO:

var options =
{
"method" : "put",
"payload" : payload
};

PARA ISSO:

var options = {"method" : "put", "payload" : payload};

E começou a funcionar. Estou supondo que o código de várias linhas end of line return caracteres nele, que o Firebase não analisaria. Isso é apenas meu palpite.

Este exemplo mostra payload, options e a Apps Script UrlFetchApp.fetch serviço.

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