Java Can';验证Android时,不要在Firebase中添加
身份验证后,我无法在firebase中添加注释 这是我的规则Java Can';验证Android时,不要在Firebase中添加,java,android,firebase,firebase-authentication,Java,Android,Firebase,Firebase Authentication,身份验证后,我无法在firebase中添加注释 这是我的规则 { "rules": { ".read": true, ".write": "auth != null" } } 我的活动,在此活动中,我测试用户在推入firebase之前是否不为null public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bu
{
"rules": {
".read": true,
".write": "auth != null"
}
}
我的活动,在此活动中,我测试用户在推入firebase之前是否不为null
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String baseUrl = "url";
final Firebase fb = new Firebase(baseUrl+"/comments");
final EditText et = (EditText) findViewById(R.id.comment);
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
Button btn = (Button) findViewById(R.id.send);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(user != null)
fb.push().child("comment").setValue(et.getText().toString());
}
});
}
}
错误我进入日志
W/RepoOperation:setValue at/comments/-L0shVMfCJWab7_5ltnO/comment失败:FirebaseError:权限被拒绝
当我将write规则更改为true时,它会工作。您需要在firebase控制台中指定这两个规则都为true-:
{
"rules": {
".read": true,
".write": true,
}
}
试试这个:
{
"rules": {
".read": true,
".write": "auth !== null"
}
}
注意==代码>在写入规则中,用两个等号代替一个
这个答案基于中的一些示例。我解决了这个问题,而是使用Firebase实例,我使用DatabaseReference
这是密码
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String baseUrl = "https://tpdevproject.firebaseio.com/";
final DatabaseReference fb = FirebaseDatabase.getInstance().getReference("comments");
final EditText et = (EditText) findViewById(R.id.comment);
final FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
Button btn = (Button) findViewById(R.id.send);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(user != null)
fb.push().child("comment").setValue(et.getText().toString());
}
});
}
}
您需要指定在未将firebase设置为true的情况下如何将值写入firebase。指定true意味着您有权限写入我的意思是在未经身份验证的情况下读取数据,并仅在用户经过身份验证的情况下写入数据(为了更安全)。不工作。我找到了解决方案,改用Firebase,我用DatabaseReference。