我有一个写在Firebase上的应用程序。安全规则和客户端代码不足以让我的应用程序正常工作。我需要连接服务器以执行以下任务:
- 清理使用
断开连接
处理者 - 构建超出我能力范围的额外数据索引
具有
询问
answer=“29240941”的数据
共同学习, 共同进步, 祝各位早日成为代码大神
我有一个写在Firebase上的应用程序。安全规则和客户端代码不足以让我的应用程序正常工作。我需要连接服务器以执行以下任务:
answer=“29240941”的数据
更新(20160611):如果您在https://firebase.google.com,从服务器访问数据库的步骤不同。请参阅此答案:是否仍可以在Firebase 3中对令牌进行服务器端验证?
有两种方法可以做到这一点:生成服务器身份验证令牌,或使用Firebase机密
生成服务器令牌
您可以使用为自定义登录创建的相同令牌生成器库来生成可从服务器使用的令牌。然后,您可以通过安全规则提供对此服务器的特殊访问权限
以下是步骤:
使用预先选择的uid生成令牌。如果您正在编写node.js服务器,代码可能如下所示:
var FirebaseTokenGenerator=require(“firebase令牌生成器”);
var tokenGenerator=new firebaseTokenerator(“<;您的firebase secret>;”);
var token=tokenGenerator.createToken(
{uid:“我最棒的服务器”},
{expires:<;远至未来秒>;});
使用令牌对客户端进行身份验证。下面是更多node.js代码:
var ref=new Firebase(“https://<;your Firebase>;.firebaseio.com/”;
ref.authWithCustomToken(令牌,函数(错误,authData){
...
});
如果服务器的语言(如PHP)没有客户端,请将REST请求的令牌用作auth参数
更新您的安全规则以向您的服务器授予uid标识的特殊权限,就像这个允许对整个Firebase进行读取访问的简单规则一样
{
“规则”:{
“.write”:false,
“.read”:“auth.uid==‘我的超级服务器’”
}
}
访问所有数据,做一些很棒的事情
优势
火基机密
如果您是那种喜欢生活在边缘的开发人员,并且可以轻而易举地键入sudo,那么您也可以直接使用Firebase机密进行身份验证
但说真的,不要这样做。这很危险
不这样做的原因