在我的应用程序中,我想要一个“可以阅读”和一个“可以写”的视图。当应用程序在没有现有参数的情况下启动(“第一次用户”)时,会创建 2 个随机哈希值,连同 firebase 应用程序机密,将它们发布到 PHP FirebaseTokenGenerator 以接收我的令牌。
然后我想这样做:
- 第一个散列(“读取散列”)表示“匿名用户”条目
- 第二个散列(“写散列”)表示一个“键”,它是用户条目的子条目
看起来像这样:
<appname>
users
<read_hash>
key
<write_hash>
[other user related data]
...
哈希值可以用作 URL 参数,例如“myapp.com/#read_hash/write_hash”
我想要实现的是:
- 当用户只有他的 read_hash(只调用“myapp.com/#read_hash”)时,他应该能够看到他第一次输入的所有条目(让应用程序为他创建 write_hash /“key”)。但他不允许修改它们。
- 当他提供他的 write_hash(调用“myapp.com/#read_hash/write_hash”)时,允许写入 Firebase。
我的安全规则:
{
"rules": {
"users": {
"$user": {
".read": "$user == auth.read_hash",
".write": "$user == auth.read_hash && root.child('users').child($user).child('key').val() == auth.write_hash"
}
}
}
}
我的问题是:如何在没有我的安全规则“.write”阻止写入的情况下第一次存储 write_hash ?
任何其他想法如何实现这一目标?任何架构/不一致?
我正在使用这些库:
- 带有骨干-firebase.js 的骨干 JS
- FirebaseTokenGenerator PHP
提前致谢。