gpt4 book ai didi

node.js - 在 Node 中哪里添加 Firebase

转载 作者:太空宇宙 更新时间:2023-11-03 23:30:48 24 4
gpt4 key购买 nike

我将在 Firebase 中制作一个 Web 应用。问题是,我仍然不确定一些事情将如何运作。

最终我需要一台服务器(位于 Node 中)来发送电子邮件等。不过,我最大的问题之一是哪里真正需要 Firebase。让我详细说明一下!

我在文档 ( here ) 中看到,您可以通过在 Node 中添加以下代码来将 Firebase 添加到您的服务器:

var firebase = require("firebase");

firebase.initializeApp({
serviceAccount: "path/to/serviceAccountCredentials.json",
databaseURL: "https://databaseName.firebaseio.com"
});

但您也可以使用以下代码将 Firebase 直接添加到浏览器:

<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase.js"></script>
<script>
// Initialize Firebase
// TODO: Replace with your project's customized code snippet
var config = {
apiKey: "apiKey",
authDomain: "projectId.firebaseapp.com",
databaseURL: "https://databaseName.firebaseio.com",
storageBucket: "bucket.appspot.com",
};
firebase.initializeApp(config);
</script>

所以我的问题是在什么情况下我会执行上述任一操作?何时将 Firebase 添加到浏览器,何时将 Firebase 添加到服务器?两者都有什么用途?

例如,我可以在不连接到 Firebase 的情况下从服务器访问实时数据库吗?如果我将 Firebase 添加到服务器,是否需要再次将其添加到浏览器?请解释一下,谢谢!

最佳答案

您已经知道了问题答案的大部分内容。

假设您希望网络应用程序的用户能够发送电子邮件。正如您所说,您通常希望从服务器执行此操作,因为否则您必须依赖用户的电子邮件客户端。

但即使是您的 Node.js 服务器发送电子邮件,也是由您的 Web 应用程序的用户决定发送电子邮件的时间和地点。因此,用户需要一种与您的 Node.js 脚本对话的方式。

您可以轻松地让用户直接与您的 Node.js 服务器对话。设置一些express.js 端点即可开始工作。但是,您需要在您的node.js服务器上设置安全性,确保您可以处理用户提交的电子邮件请求多于您的node.js脚本可以处理的情况等。大量与发送电子邮件无关的管道工作。

处理这种情况的另一种方法是让 Web 客户端将“电子邮件请求”写入 Firebase 数据库。只需包含 Firebase 客户端(以及您拥有的代码片段)并且:

ref.child('outbox').push({ 
to: 'puf@stackoverflow.com',
subject: 'nice answer!',
body: '...'
})

现在您的网络客户端已完成,用户可以继续。

在 Node.js 服务器上,您包含 Firebase 客户端(带有您拥有的第二个代码段)并连接到同一数据库,等待电子邮件请求传入:

ref.child('outbox').on('child_added', function(snapshot) {
var msg = snapshot.val();
sendEmailTo(msg.to, msg.subject, msg.body).then(function(error) {
// if the message was sent, delete it from the queue
if (!error) snapshot.ref.remove();
});
})

我们的经典 blog post on Firebase application architectures 中介绍了这种方法。如模式 2。

关于node.js - 在 Node 中哪里添加 Firebase,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38471272/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com