所以我只想保持简单并设置auth ===“StringKey”进行写入,这样如果密钥匹配,我就可以在数据库中写入。我已经用它模拟的模拟测试了“StringKey”。但是我不知道在HttpPost上输入密钥的位置。
我试过https://fake-project-name.firebaseio.com/datatable1.json?auth=“StringKey” 但我一直得到返回“错误”:“无法解析身份验证令牌。”,我不确定我输入的JSON语法有什么问题。
我尝试添加{“身份验证”:“基本'StringKey'”}但不确定我在为此部分做些什么。
提前感谢您的帮助。
Firebase实时数据库规则:
答案 0 :(得分:1)
Firebase数据库REST API的auth
参数仅接受JSON Web令牌(JWT)。如果你传入一个随机字符串,它不是一个有效的JWT,所以被拒绝。
如果要正确验证REST请求,则必须按照the documentation on authenticating REST Requests中列出的步骤进行操作。
另一方面,如果您只想查看是否可以实现所谓的共享密钥,允许任何拥有该秘密的人写入数据库,您可以采取不同的方法。
设置安全规则如下:
{
"rules": {
"ecbyr2782t73113193193": {
".read": true,
".write": true
}
}
}
根据这些规则,如果某人知道秘密值/ecbyr2782t73113193193
,则可以从ecbyr2782t73113193193
读取/写入。如果他们不知道该值,则无法从数据库中获取该值。
这被称为共享密钥,因为您必须与带外其他用户共享密码(例如通过电子邮件或FCM)。
请注意,除了此共享密钥之外,我仍建议您对REST请求使用正确的身份验证。
答案 1 :(得分:0)
尝试一下:
fake-project-name.firebaseio.com/datatable1.json?auth= [MY_DATABASE_SECRET]