经过身份验证后,我无法在 firebase 中添加评论。
这是我的规则。
{
"rules": {
".read": true,
".write": "auth != null"
}
}
我的 Activity ,在插入 firebase 之前测试用户是否不为空。
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 failed: FirebaseError: Permission denied
当我将 write 规则更改为 true 时,它就起作用了。
最佳答案
我解决了该问题,而是使用 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());
}
});
}
}
关于java - 经过 Android 验证后无法在 Firebase 中添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47923582/