thu*_*t0n 5 java android firebase firebase-security firebasesimplelogin
这是在firebase上定义规则的方式:
{
"rules": {
"users": {
".read": true,
"$user_id": {
".write": "auth.uid === $user_id",
".read" : true
}}}}
Run Code Online (Sandbox Code Playgroud)
我已经使用setValue()在我的注册活动中成功编写了新的用户信息,如下所示,并且每次我都没有使用put().setValue()时添加了新的注释.新用户直接写入http:// DB/users /,同时添加了非常深入的评论.
这是一个代码snippit,我的代码命中日志:数据无法保存.每次.
AuthData authData = newRef.getAuth();
if (authData != null) {
Log.v(LOG_TAG, "Auth as " + authData.getUid());
Map<String, Object> newEntry = new HashMap<String, Object>();
newEntry.put("Name", name);
newEntry.put("Description", desc);
newEntry.put("DueDate", date);
newEntry.put("Status", 0);
newRef.setValue(newEntry, new Firebase.CompletionListener() {
@Override
public void onComplete(FirebaseError firebaseError, Firebase firebase) {
if (firebaseError != null) {
Log.v(LOG_TAG, "Data could not be saved. " + firebaseError.getMessage()); //Hits here every time.
} else {
Log.v(LOG_TAG, "Data saved successfully. Finishing activity...");
finish();
}
}
});
;
}
else{
Log.v(LOG_TAG, "No authdata");
}
Run Code Online (Sandbox Code Playgroud)
希望我提供了足够的信息,我猜这个问题是在安全/规则中,但任何方向/指导都会非常感激.谢谢.
Atu*_*lic 28
我太过坚持这一点,这就是帮助我的原因.
首先,有两种类型的用户可以从firebase访问数据库
默认情况下,它设置为未授权,但是它们没有任何读取或写入权限,因此,如果您尝试执行任何操作,则最初会收到权限被拒绝错误.
如何更改以满足您的要求?
解:
在Database部分下,转到Rules选项卡.URL将与您的项目名称类似.
https://console.firebase.google.com/project/project-name/database/rules
你会在这里看到这样的东西:
{
"rules": {
".read": "auth != null", //non-authorised users CANT read
".write": "auth != null" //non-authorised users CANT write
}
}
Run Code Online (Sandbox Code Playgroud)
只需将其更改为
{
"rules": {
".read": "auth == null", //even non-authorised users CAN read
".write": "auth == null" //even non-authorised users CAN write
}
}
Run Code Online (Sandbox Code Playgroud)
根据您的要求更改此项.快乐编码:)
| 归档时间: |
|
| 查看次数: |
9652 次 |
| 最近记录: |