【发布时间】:2020-08-08 00:55:12
【问题描述】:
首先,我很抱歉描述。这是我能做的最好的事情,因为我对 WEB 开发的知识为零,而且我发现很难找到要问的具体问题。
我完成了一个令人惊叹的 Android 应用程序的开发,现在我正在使用 Firebase 托管来托管我的静态网页 - 一个带有提交按钮的简单表单。
我整天都在为此苦苦挣扎,再次为我在这种情况下的愚蠢行为感到抱歉。所以我们开始吧:
我根据Google Developers 初始化了 Node.js 的 Admin SDK 所需的一切
除了 Firebase 为我生成的所有文件之外,我在 WebStorm 中的“公共”目录中创建了两个文件:index.js 和 index.html。
我设法以管理员身份使用以下代码写入数据库:
// index.js
const admin = require('firebase-admin');
const serviceAccount = require("C:/myapp/serviceAccountKey.json");
admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: "https://myapp.firebaseio.com"
});
let db = admin.database();
let ref = db.ref("Guests");
let isInvited = false;
function updateDB() {
ref2.once("value", function (snapshot) {
isInvited = snapshot.val();
if (!isInvited) {
ref.update({
"invited": true,
"arrive": true,
});
}
});
}
如果我从 WebStorm 运行它,数据库将更改为我设置的值。 这是一个样板。我希望当用户单击 html 文件中的提交按钮时,将从 js 文件中更新数据库。
这是 html 文件的代码:
// index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Welcome to Firebase Hosting</title>
</head>
<body>
<form id="mainForm">
<div>
<label for="arrivalCheckbox">Arrival Confirmation</label>
<input type="checkbox" id="arrivalCheckbox" value="1">
</div>
<div>
<label for="joiners">Joiners</label>
<input type="number" id="joiners" min="0" max="20">
</div>
<button type="submit" id="submitButton">Submit</button>
</form>
<!-- update the version number as needed -->
<script defer src="/__/firebase/7.17.2/firebase-app.js"></script>
<!-- include only the Firebase features as you need -->
<script defer src="/__/firebase/7.17.2/firebase-auth.js"></script>
<script defer src="/__/firebase/7.17.2/firebase-database.js"></script>
<script defer src="/__/firebase/7.17.2/firebase-messaging.js"></script>
<script defer src="/__/firebase/7.17.2/firebase-storage.js"></script>
<!-- initialize the SDK after all desired features are loaded -->
<script defer src="/__/firebase/init.js"></script>
<script defer src="index.js"></script>
</body>
</html>
当我尝试将 index.js 中的数据库部分写入函数中,然后在表单上使用“onSubmit”或在提交按钮上使用“onClick”时从 html 文件调用时,写入没有即使我使用“firebase deploy”部署我的应用程序,也不会发生。
我的 WEB 知识为零,学习时间很少。今天是我第一天看到 javascript 和 html。我整天都在为此苦苦挣扎,我很乐意得到一些帮助。
【问题讨论】:
标签: javascript node.js firebase firebase-realtime-database firebase-admin