Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';验证Android时,不要在Firebase中添加_Java_Android_Firebase_Firebase Authentication - Fatal编程技术网

Java Can';验证Android时,不要在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

身份验证后,我无法在firebase中添加注释

这是我的规则

{
    "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。