java - 经过 Android 验证后无法在 Firebase 中添加

标签 java android firebase firebase-authentication

经过身份验证后,我无法在 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/

相关文章:

java - 属性文件中的更改不会保存在 JAR 文件内

java - java中的AES加密错误

java - 使用 FirebaseRecyclerAdapter 的 RecyclerView 不显示项目 - FirebaseUI (3.1.3)

ios - 每天调用一次 Firebase 数据库

firebase - 有没有办法使用 Firebase 收集用户电子邮件?

java - DecimalFormat 没有科学记数法

java - JsonArray 输出不起作用

android - 给定边框半径时如何设置标签栏的背景颜色?

java - 带有透明操作栏的抽屉导航

Android-Show overdraw areas 选项不起作用