我有一个在Firebase上编写的应用程序。安全规则和客户端代码还不足以使我的应用正常工作。我需要连接服务器来执行一些任务:
_更新日期(20160611):如果您在https://firebase.google.com上创建了项目,则从服务器访问数据库的步骤有所不同。
您可以通过两种方式执行此操作:生成服务器身份验证令牌或使用Firebase机密。
生成服务器令牌 您可以使用为“自定义登录”创建的相同令牌生成器库来生成可从服务器使用的令牌。然后,您可以根据安全规则提供对该服务器的特殊访问权限。
步骤如下:
生成带有预选uid的令牌。如果您正在编写一个node.js服务器,则代码可能看起来像这样:
var FirebaseTokenGenerator = require("firebase-token-generator");
var tokenGenerator = new FirebaseTokenGenerator(““); var token = tokenGenerator.createToken( {uid: “my-awesome-server”}, { expires: });
使用令牌来验证您的客户端。这里是更多的node.js代码:
var ref = new Firebase("https://<your-firebase>.firebaseio.com/");
ref.authWithCustomToken(token, function(error, authData) { … });
如果没有用于服务器语言的客户端(例如PHP),则将REST请求的令牌用作auth参数。
auth
更新您的安全规则,以授予由uid标识的服务器特殊权限,例如该简单规则,该规则允许对整个Firebase进行读取访问
{ "rules": { ".write": false, ".read": "auth.uid === 'my-awesome-server'" }
}
访问所有数据,做一些很棒的事情。
优点
火力基地的秘密
如果您是那种乐于助人为乐的开发人员,并且喜欢sudo打字,那么您也可以直接使用Firebase机密进行身份验证。
sudo
但认真的说,不要这样做。这很危险。
不这样做的原因