针对GoogleAppScript:将值作为整数而不是小数传递和谷歌javascript:void这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展angular–ngnewhello错误:路
针对Google App Script:将值作为整数而不是小数传递和谷歌javascript:void这两个问题,本篇文章进行了详细的解答,同时本文还将给你拓展angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在、Firestore 获取所有文档并在 Google App Script Web App 上显示为 HTML 表格 示例脚本:结果:注意:参考:、Flutter, FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - 调用 Firebase App.initializeApp() (app/no-app)、Google App Script - 从 GOOGLE 工作表写入 CLOUD SQL等相关知识,希望可以帮助到你。
本文目录一览:- Google App Script:将值作为整数而不是小数传递(谷歌javascript:void)
- angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在
- Firestore 获取所有文档并在 Google App Script Web App 上显示为 HTML 表格 示例脚本:结果:注意:参考:
- Flutter, FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - 调用 Firebase App.initializeApp() (app/no-app)
- Google App Script - 从 GOOGLE 工作表写入 CLOUD SQL
Google App Script:将值作为整数而不是小数传递(谷歌javascript:void)
如何解决Google App Script:将值作为整数而不是小数传递
我正在尝试从 Google Script 创建一个 post API 负载,并且需要传递数字字段而不使用十进制值。 但是,应用程序脚本总是在最后添加一个十进制 0(例如 1000.0),这会产生问题
var amt = ''1000'';
Logger.log(amt);
var options = {
"method": "post","payload": {
"amount": parseInt(amt),
logger 回复 1000,但是在 options 中使用时,却传了 1000.0
任何帮助都会有用..
解决方法
您可以将帖子请求中的数字作为字符串传递,然后在接收端将其转换为整数
示例:
Apps 脚本
var amt = ''1000'';
var options = {
"method": "post","payload": {
"amount": amt,}
}
接收端:
amt = parseInt(amt);
angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在
当我运行新的myapp命令时,我得到以下命令
新的你好
Error: Path "/app/app.module.ts" does not exist. Path "/app/app.module.ts" does not exist.
谁能帮我吗???
解决方法
Please make sure that your new folder have write permission
如果您使用的是ubuntu,请将以下命令运行到该文件夹
sudo chmod 644 -R foldername
然后运行新的appname
并检查您的节点版本
Firestore 获取所有文档并在 Google App Script Web App 上显示为 HTML 表格 示例脚本:结果:注意:参考:
如何解决Firestore 获取所有文档并在 Google App Script Web App 上显示为 HTML 表格 示例脚本:结果:注意:参考:
提前致谢。
需要有关使用 FirestoreGoogleAppsScript 库的帮助。需要拉取所有文档并显示在 HTML 表格上。我能够使用 allDocumentsRows = firestore.getDocuments("StudentInfo");但我得到了一些数据,不知道如何解析,请看下面的结果。
再次非常感谢您
下面是我的 Firestore:
[{"name":"projects/aerobic-rampart-310908/databases/(default)/documents/StudentInfo/2kVWabLEOIklMjFjSx8Z","fields":{"Lname":{"stringValue":"Neman"},"Gender":{"stringValue":"Male"},"StudID":{"stringValue":"P1003"},"Fname":{"stringValue":"Mike"},"Age":{"stringValue":"30"}},"createTime":"2021-04-19T01:19:07.244542Z","updateTime":"2021-04-19T01:20:07.525386Z","readTime":"2021-04-19T04:49:08.022505Z"},{"name":"projects/aerobic-rampart-310908/databases/(default)/documents/StudentInfo/5alVKxcuefigpDJxVz42","fields":{"StudID":{"stringValue":"P1003"},"Lname":{"stringValue":"Neman"},"Age":{"stringValue":"30"},"Fname":{"stringValue":"Mike"}},"createTime":"2021-04-19T01:20:17.336285Z","updateTime":"2021-04-19T01:20:17.336285Z",{"name":"projects/aerobic-rampart-310908/databases/(default)/documents/StudentInfo/PUfVFCSSvb6Ocsg8GuL9","createTime":"2021-04-19T01:20:14.947172Z","updateTime":"2021-04-19T01:20:14.947172Z",{"name":"projects/aerobic-rampart-310908/databases/(default)/documents/StudentInfo/SKskdYQO6YQv0jPN16ma","fields":{"Age":{"stringValue":"30"},"StudID":{"stringValue":"P1003"}},"createTime":"2021-04-19T01:20:19.429915Z","updateTime":"2021-04-19T01:20:19.429915Z",{"name":"projects/aerobic-rampart-310908/databases/(default)/documents/StudentInfo/bWmpnwK5iuUuhJ5jEG6c","fields":{"Gender":{"stringValue":"Male"},"createTime":"2021-04-19T01:20:18.516428Z","updateTime":"2021-04-19T01:20:18.516428Z",{"name":"projects/aerobic-rampart-310908/databases/(default)/documents/StudentInfo/gpIqfyWpHJBNosJuOJSw","Gender":{"stringValue":"Male"}},"createTime":"2021-04-19T01:20:22.676022Z","updateTime":"2021-04-19T01:20:22.676022Z","readTime":"2021-04-19T04:49:08.022505Z"}]
解决方法
我相信你的目标如下。
- 您想从 Firestore 检索值,并且您想使用 Google Apps 脚本使用检索到的值创建 HTML 表。
当allDocumentsRows = firestore.getDocuments("StudentInfo")
的示例值为您问题中的值,标题行为["Age","Fname","Lname","StudID","Gender"]
时,示例脚本如下。
示例脚本:
const allDocumentsRows = firestore.getDocuments("StudentInfo"); // This script is from your question.
const headers = ["Age","Gender"]; // As the header row,please set the keys in fields with the order you want to use.
const h = headers.reduce((s,e) => s += `<th>${e}</th>`,"<tr>") + "</tr>";
const htmlTable = allDocumentsRows.reduce((s,{fields}) =>
s += headers.reduce((t,hed) => t += `<td>${fields[hed].stringValue}</td>`,"<tr>") + "</tr>",`<table>${h}`) + "</table>";
console.log(htmlTable)
结果:
当以上脚本用于您的样本值时,得到以下结果。
<table><tr><th>Age</th><th>Fname</th><th>Lname</th><th>StudID</th><th>Gender</th></tr><tr><td>30</td><td>Mike</td><td>Neman</td><td>P1003</td><td>Male</td></tr><tr><td>30</td><td>Mike</td><td>Neman</td><td>P1003</td><td>Male</td></tr><tr><td>30</td><td>Mike</td><td>Neman</td><td>P1003</td><td>Male</td></tr><tr><td>30</td><td>Mike</td><td>Neman</td><td>P1003</td><td>Male</td></tr><tr><td>30</td><td>Mike</td><td>Neman</td><td>P1003</td><td>Male</td></tr><tr><td>30</td><td>Mike</td><td>Neman</td><td>P1003</td><td>Male</td></tr></table>
注意:
- 当您要更改标题的顺序时,请修改
const headers = ["Age","Gender"]
。
参考:
- reduce()
Flutter, FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - 调用 Firebase App.initializeApp() (app/no-app)
如何解决Flutter, FirebaseError: Firebase: No Firebase App ''[DEFAULT]'' has been created - 调用 Firebase App.initializeApp() (app/no-app)
我正在尝试在网络上运行我的移动 Flutter 应用程序,我想我已经完成了我需要做的所有配置,但出现错误:“FirebaseError: Firebase: No Firebase App ''[DEFAULT]'' has been created - 调用 Firebase App.initializeApp()(应用程序/无应用程序)。”有谁知道我应该怎么做才能解决它?我正在 main 中初始化 firebase,我找不到我还能做什么。
这是我的 main.dart:
import ''package:firebase_core/firebase_core.dart'';
import ''package:Flutter/material.dart'';
import ''package:untitled1/quiz_app/sign_in.dart'';
void main() async{
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp();
runApp(MaterialApp(
//initialRoute: ''/SignIn'',debugShowCheckedModeBanner: false,theme: ThemeData(
primarySwatch: Colors.indigo
),routes: {
''/SignIn'' :(context) => SignInPage(),},home: Scaffold(
resizetoAvoidBottomInset: false,body: SignInPage()
),));
}
这里是 index.html:
<!DOCTYPE html>
<html>
<head>
<!--
If you are serving your web app in a path other than the root,change the
href value below to reflect the base path you are serving from.
The path provided below has to start and end with a slash "/" in order for
it to work correctly.
For more details:
* https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base
This is a placeholder for base href that will be replaced by the value of
the `--base-href` argument provided to `Flutter build`.
-->
<base href="$FlutteR_BASE_HREF">
<Meta charset="UTF-8">
<Meta content="IE=Edge" http-equiv="X-UA-Compatible">
<Meta name="description" content="A new Flutter project.">
<!-- iOS Meta tags & icons -->
<Meta name="apple-mobile-web-app-capable" content="yes">
<Meta name="apple-mobile-web-app-status-bar-style" content="black">
<Meta name="apple-mobile-web-app-title" content="ahmett">
<link rel="apple-touch-icon" href="icons/Icon-192.png">
<title>ahmett</title>
<link rel="manifest" href="manifest.json">
</head>
<body>
<!-- The core Firebase JS SDK is always required and must be listed first -->
<script src="https://www.gstatic.com/firebasejs/8.6.8/firebase-app.js"></script>
<!-- Todo: Add SDKs for Firebase products that you want to use
https://firebase.google.com/docs/web/setup#available-libraries -->
<script src="https://www.gstatic.com/firebasejs/8.6.8/firebase-analytics.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.8/firebase-storage.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.8/firebase-auth.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.8/firebase-firestore.js"></script
<script>
// Your web app''s Firebase configuration
// For Firebase JS SDK v7.20.0 and later,measurementId is optional
var firebaseConfig = {
apiKey: "cencored",authDomain: "cencored",projectId: "cencored",storageBucket: "cencored",messagingSenderId: "cencored",appId: "cencored",measurementId: "cencored"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
firebase.analytics();
</script>
</script><script src="main.dart.js" type="application/javascript"></script>
</body>
</html>
解决方法
对于 Flutter Web,Firebase 插件有一个新设置。
首先,按照此处提到的所有步骤https://firebase.flutter.dev/docs/installation/web
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>example</title>
</head>
<body>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/8.6.1/firebase-messaging.js"></script>
<script>
// Your web app''s Firebase configuration
var firebaseConfig = {
apiKey: "...",authDomain: "[YOUR_PROJECT].firebaseapp.com",databaseURL: "https://[YOUR_PROJECT].firebaseio.com",projectId: "[YOUR_PROJECT]",storageBucket: "[YOUR_PROJECT].appspot.com",messagingSenderId: "...",appId: "1:...:web:...",measurementId: "G-...",};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
</script>
<script src="main.dart.js" type="application/javascript"></script>
<script>
var serviceWorkerVersion = null;
var scriptLoaded = false;
function loadMainDartJs() {
if (scriptLoaded) {
return;
}
scriptLoaded = true;
var scriptTag = document.createElement(''script'');
scriptTag.src = ''main.dart.js'';
scriptTag.type = ''application/javascript'';
document.body.append(scriptTag);
}
if (''serviceWorker'' in navigator) {
// Service workers are supported. Use them.
window.addEventListener(''load'',function () {
//register firebase-messaging service worker
navigator.serviceWorker.register("/firebase-messaging-sw.js");
// Wait for registration to finish before dropping the <script> tag.
// Otherwise,the browser will load the script multiple times,// potentially different versions.
var serviceWorkerUrl = ''flutter_service_worker.js?v='' + serviceWorkerVersion;
navigator.serviceWorker.register(serviceWorkerUrl)
.then((reg) => {
function waitForActivation(serviceWorker) {
serviceWorker.addEventListener(''statechange'',() => {
if (serviceWorker.state == ''activated'') {
console.log(''Installed new service worker.'');
loadMainDartJs();
}
});
}
if (!reg.active && (reg.installing || reg.waiting)) {
// No active web worker and we have installed or are installing
// one for the first time. Simply wait for it to activate.
waitForActivation(reg.installing ?? reg.waiting);
} else if (!reg.active.scriptURL.endsWith(serviceWorkerVersion)) {
// When the app updates the serviceWorkerVersion changes,so we
// need to ask the service worker to update.
console.log(''New service worker available.'');
reg.update();
waitForActivation(reg.installing);
} else {
// Existing service worker is still good.
console.log(''Loading app from service worker.'');
loadMainDartJs();
}
});
// If service worker doesn''t succeed in a reasonable amount of time,// fallback to plaint <script> tag.
setTimeout(() => {
if (!scriptLoaded) {
console.warn(
''Failed to load app from service worker. Falling back to plain <script> tag.'',);
loadMainDartJs();
}
},4000);
});
} else {
// Service workers not supported. Just drop the <script> tag.
loadMainDartJs();
}
</script>
</body>
</html>
查看此设置 https://github.com/FirebaseExtended/flutterfire/tree/master/packages/firebase_messaging/firebase_messaging/example/web
Google App Script - 从 GOOGLE 工作表写入 CLOUD SQL
如何解决Google App Script - 从 GOOGLE 工作表写入 CLOUD SQL
我正在尝试将 google 表格中的一列中的数据写入 cloud sql 中的一个表。
错误是:
“异常:参数(字符串)与 Jdbc.JdbcPreparedStatement.setString 的方法签名不匹配。”
在线
stmt.setString('''' + copyData[i][0]);
我对谷歌应用程序脚本非常陌生,对 MysqL 的了解非常有限。大约 10 年前在大学学习了 Web 开发课程,此后一直没有看过。
我尝试使用的代码是:
function WritetoDB() {
var connectionName = ''xxx'';
var user = ''xxx'';
var userPwd = ''xxx1'';
var db = ''TestDB'';
var instanceUrl = ''jdbc:google:MysqL://'' + connectionName;
var dbUrl = instanceUrl + ''/'' + db;
var conn = Jdbc.getCloudsqlConnection(dbUrl,user,userPwd);
conn.setAutoCommit(false);
var SS_File = SpreadsheetApp.getActiveSpreadsheet();
var SourceSheet = SS_File.getSheetByName("WorkSheet1");
var headerRowNumber = 1;
var copyData = SourceSheet.getDatarange().offset(headerRowNumber,SourceSheet.getLastRow() - headerRowNumber).getValues();
var stmt = conn.prepareStatement(''INSERT INTO TestTable '' + ''(TestColumn) VALUES (?)'');
for (var i = 0; i < copyData.length; i++) {
stmt.setString('''' + copyData[i][0]);
stmt.addBatch();
}
var batch = stmt.executeBatch();
conn.comit();
conn.close();
var end = new Date();
Logger.log(''Time elapsed: %s ms for %s rows.'',end - start,batch.length);
}
连接正常,我可以通过应用程序脚本创建表等。就是不能写这个数据。
数据在电子表格的 A 列中,标题行为 1。
有人可以帮忙吗?
谢谢!
我试过了
for (var i = 0; i < copyData.length; i++) {
stmt.setobject(i,copyData[i][0]);
stmt.addBatch();
错误:“异常:参数索引超出范围(0
&
for (var i = 0; i < copyData.length; i++) {
stmt.setobject(i+1,copyData[i][0]);
stmt.addBatch();
错误:“异常:参数索引超出范围(2 > 参数数量,为 1)”
&
for (var i = 0; i < copyData.length; i++) {
stmt.setobject(i,copyData[i]);
stmt.addBatch();
错误:“异常:无效的参数值:java.sql.sqlException”
卡住了。
解决方法
我想我尝试过使用批处理,但没有成功,所以我逐行进行,性能仍然不错。
我首先构建基本字符串:
var stmtStr = "INSERT INTO TestTable (TestColumn) VALUES (";
然后使用循环中基本字符串的副本:
,
for (var i = 0; i < CopyData.length; i++) {
query = stmtStr + CopyData[i][0] + ")";
stmt = conn.createStatement();
iUpdate = stmt.executeUpdate(query);
if (i==0) {
console.log(query,iUpdate,CopyData[i][0]);
}
}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!
供任何人在未来使用的工作代码。
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!
我唯一的问题是云 SQL 超时限制。 - 正在努力解决这个问题,一旦我解决了问题,就会提供解决方案。
注意:确保源表中的值是字符串,没有公式。
我不得不使用 copy.to(xxx,{contentsonly:true}) 将值复制到另一张纸上。
function WriteToDB() {
var connectionName = ''YOUR_CONNECTION_NAME'';
var user = ''YOUR_USERNAME'';
var userPwd = ''YOUR_PASSWORD'';
var db = ''YOUR_DATABASE'';
var instanceUrl = ''jdbc:google:mysql://'' + connectionName;
var dbUrl = instanceUrl + ''/'' + db;
var conn = Jdbc.getCloudSqlConnection(dbUrl,user,userPwd);
conn.setAutoCommit(false);
var SS_File = SpreadsheetApp.getActiveSpreadsheet();
var SourceSheet = SS_File.getSheetByName("YOUR_SHEET_NAME");
var headerRowNumber = 1; // HOW MANY ROWS TO MISS
var CopyData = SourceSheet.getDataRange().offset(headerRowNumber,SourceSheet.getLastRow() - headerRowNumber).getValues();
var stmt = conn.prepareStatement("INSERT INTO YOUR_TABLE_NAME " + "(YOUR_COLUMN_NAME) VALUES (?)");
for (var i = 0; i < CopyData.Length; i++) {
stmt.setString(1,CopyData[i][0]);
stmt.addBatch();
}
var batch = stmt.executeBatch();
conn.commit();
conn.close();
}
我们今天的关于Google App Script:将值作为整数而不是小数传递和谷歌javascript:void的分享就到这里,谢谢您的阅读,如果想了解更多关于angular – ng new hello错误:路径“/app/app.module.ts”不存在.路径“/app/app.module.ts”不存在、Firestore 获取所有文档并在 Google App Script Web App 上显示为 HTML 表格 示例脚本:结果:注意:参考:、Flutter, FirebaseError: Firebase: No Firebase App '[DEFAULT]' has been created - 调用 Firebase App.initializeApp() (app/no-app)、Google App Script - 从 GOOGLE 工作表写入 CLOUD SQL的相关信息,可以在本站进行搜索。
本文标签: