在发送firebase请求并在末尾进行活动切换时,我会收到
DatabaseError: Permission denied
消息,在调试模式下运行时(即不让Android切换到其他活动(或更换updateUI()
函数return;
功能成功完成,并且数据已在服务器中注册。
Button sendRequest = (Button) this.findViewById(R.id.bt_send_request);
sendRequest.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(choosenLatLng == null || myTime == null){
Toast.makeText(JobRequestActivity.this, "you need to enable location permission first", Toast.LENGTH_LONG).show();
return;
}
DatabaseReference mJobDatabase = FirebaseDatabase.getInstance().getReference().child("Jobs").child("beersheva").push();
mJobDatabase.child("costumer").setValue(FirebaseAuth.getInstance().getCurrentUser().getUid());
mJobDatabase.child("date1").setValue(myTime);
mJobDatabase.child("duration").setValue(duration.getSelectedItem());
mJobDatabase.child("phone number").setValue("default");
mJobDatabase.child("jobtype").setValue(jobType.name());
mJobDatabase.child("location").setValue(new LatLng(31.246897, 34.792883));
mJobDatabase.child("job picture").setValue("default");
updateUI();
}
});
private void updateUI() {
//TODO determine where to go
Intent intent = new Intent(JobRequestActivity.this,
MainCustomerActivity.class);
startActivity(intent);
}
问题不是在权限规则上,而是关闭了与数据库的连接并重新打开活动切换。
在上次写请求上添加完整的侦听器已修复
mJobDatabase.child("extraParams").setValue(requestValues).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()) {
Toast.makeText(JobRequestActivity.this, "Job added to the server.",
Toast.LENGTH_SHORT).show();
updateUI();
} else {
// If sign in fails, display a message to the user.
Log.w(TAG, "failed adding work ", task.getException());
Toast.makeText(JobRequestActivity.this, "Could not add job, try again.",
Toast.LENGTH_SHORT).show();
}
}
});