我正在尝试升级我的Firebase GAS Webapp,以前我有一个弹出窗口,它将用Google登录用户。我不确定自己在做什么错,但是我已经升级到新的Firebase,现在正尝试使用新的代码格式获得相同的登录名。
发生的是弹出窗口出现并立即消失。有人可以在这里看到我做错了吗?
感谢您的帮助。
<html lang="en">
<head>
<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase-database.js"></script>
<script>
var config = {
apiKey: "",
authDomain: "",
databaseURL: "",
storageBucket: ""
};
firebase.initializeApp(config);
</script>
</head>
<body>
<label id="name">First Name</label>
<script>
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth().signInWithPopup(provider).then(function(result) {
var user = result.user;
document.getElementById("name").value = user;
}).catch(function(error) {
console.log(error);
});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我试图通过提供年,月和日参数来获取日期new Date().像这样:
Logger.log(dates[i]);
var date = dates[i].trim();
Logger.log(date);
var dateMDY = date.split("/");
Logger.log(dateMDY);
Logger.log(parseInt(dateMDY[2], 10));
Logger.log(parseInt(dateMDY[0], 10));
Logger.log(parseInt(dateMDY[1], 10));
var finalDate = new Date(parseInt(dateMDY[2]), parseInt(dateMDY[0])-1, parseInt(dateMDY[1]));
Logger.log(finalDate);
Run Code Online (Sandbox Code Playgroud)
这是日志输出:
[16-09-12 09:57:57:047 PDT] 09/24/2016
[16-09-12 09:57:57:048 PDT] 09/24/2016
[16-09-12 09:57:57:048 PDT] [09, 24, 2016]
[16-09-12 09:57:57:049 PDT] 2016.0
[16-09-12 09:57:57:050 PDT] 9.0
[16-09-12 09:57:57:050 PDT] 24.0
[16-09-12 09:57:57:051 PDT] Wed Dec 31 19:00:00 GMT-05:00 1969
[16-09-12 09:57:57:711 PDT] 09/28/2016
[16-09-12 09:57:57:712 PDT] 09/28/2016
[16-09-12 09:57:57:712 PDT] [09, 28, 2016]
[16-09-12 …Run Code Online (Sandbox Code Playgroud) 我有这段代码可以搜索驱动器文件夹中的新文档,并通过电子邮件发送文件
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var email = "xxx@gmail.com";
var timezone = ss.getSpreadsheetTimeZone();
var today = new Date();
var oneDayAgo = new Date(today.getTime() - 1 * 24 * 60 * 60 * 1000);
var startTime = oneDayAgo.toISOString();
var search = '(trashed = false or trashed = false) and (modifiedDate > "' + startTime + '")';
var folder1 = DriveApp.getFoldersByName('SaveToPDF').next();
var files1 = folder1.searchFiles(search);
var row = "", count=0;
while( files1.hasNext() ) {
var file1 = files1.next(); …Run Code Online (Sandbox Code Playgroud) 根据谷歌文档(https://support.google.com/docs/answer/58515?hl=en),当前刷新/重新计算时间如下;
要更改某些Google表格功能更新的频率:
打开电子表格.单击文件>电子表格设置.在"重新计算"下,从下拉菜单中选择一个设置.单击保存设置.注意:外部数据函数按以下时间间隔重新计算:
ImportRange:30分钟ImportHtml,ImportFeed,ImportData,ImportXml:1小时GoogleFinance:2分钟
我们有什么方法可以加快速度吗?例如,删除单元格然后替换它将强制刷新数据.也许这可以通过脚本来完成.甚至可以单独使用脚本从另一个工作表中提取数据吗?
有没有人对如何做到这一点有任何想法?理想情况下,我希望每5分钟刷新一次.
非常感谢
我希望在编辑发生后获得一个触发器来运行指定的时间.
我想我可以为这个功能组合编辑触发器和基于时间的触发器,但不清楚如何.
提供一些额外的细节.
我有一张Google表格,用于跟踪我的胰岛素用量.我应该在服用胰岛素后2小时检查我的血糖.
当我管理胰岛素时,我进入谷歌表格,时间/金额/等...当我进入此条目时,我想创建一个触发器,将在2小时内运行,向我发送电子邮件通知作为提醒检查我的血糖再次出现并重新进入.
我不知道如何在Google App脚本中为日期添加一天。我有这个脚本:
function dateTest() {
var testDate = new Date();
var secondDate = new Date(testDate.getDate()+1);
Logger.log(testDate);
Logger.log(secondDate);
}
Run Code Online (Sandbox Code Playgroud)
产生以下日志:
[16-11-30 16:35:02:499 GMT] 2016年11月30日星期三16:35:02 GMT + 00:00 2016
[16-11-30 16:35:02:500 GMT]星期四1月1日01:00:00 GMT + 01:00 1970
我不明白为什么不加上日期?
我有一个Google电子表格,它是2列表格,在A列上有日期(我确定是日期,并且所有date函数在所有列上都可以正常工作)和在B列文字上。
使用谷歌应用程序脚本,我得到了范围的所有值:
var sheet = SpreadsheetApp.openById(".........");
var ss = sheet.getSheetByName(".......");
var range =ss.getRange(1,1,ss.getLastRow(),ss.getLastColumn());
var data = range.getValues();
Run Code Online (Sandbox Code Playgroud)
现在我应该有一个二维数组,日期为data [0],文本为data [1]
我可以使用以下方法过滤data [1]上的数组:
var filter = data.filter(function (dataRow) {
return dataRow[1] == 'sometext';
});
Run Code Online (Sandbox Code Playgroud)
我需要的是按某个日期值(例如年,月或周期)过滤data [0]
我试过了:
var filter = data.filter(function (dataRow) {
return dataRow[0].getFullYear == 2016;
});
Run Code Online (Sandbox Code Playgroud)
但是任何类型的日期函数都会给我一个错误,指出无法在对象中找到该函数(例如getFullYear())。
我究竟做错了什么?
感谢您的帮助
最好的祝福
我对Google-apps-script完全不熟悉,这可能是一个非常糟糕的问题
我正在使用谷歌表单和谷歌应用程序脚本进行基本设置
从表单的响应中我相应地更改了我在Google电子表格中的内容
例如我需要从表单中查询要在整个另一个电子表格中选择和生成10000条记录
我只是想知道当我设置并获得如此大规模的电子表格的任何单元格的值时会引入某种延迟吗?如果是这样,它依赖于什么,以及如何作为程序员可以删除或优化它们?
谢谢你提前!
有没有一种方法可以创建Google应用程序脚本,以便在不在根文件夹中的Google云端硬盘中创建新文件夹?将根目录中的文件夹移动到特定文件夹的脚本也可以。
我的Google表格中有一些脚本/完成所有这些脚本可能要花很多时间(我认为最多需要5分钟)。我想显示一些消息,用户应该稍等一下。所以我有一些类似的代码:
function test(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var cell = sheet.getRange("A1");
sheet.clear();
cell.setValue('WAIT!!!!');
DATA = UrlFetchApp.fetch(url);
// And some action that takes a lot of time ....
cell.setValue('DONE!!!!');
Run Code Online (Sandbox Code Playgroud)
但是它不会显示“ WAIT”,而在一切正常的情况下只会显示“ DONE”。如果出现任何错误并且功能崩溃,它只能显示“ WAIT”。看来我需要以某种方式刷新它。