我的Cloud Firestore数据库中有一些数据。集合的名称是buss,我有2个文档(bus_id_1和bus_id_2)。我添加了一个按钮,以便单击该按钮时,可以在TextView中从数据库中获取数据。
TextView busesText;
private Button btnViewData;
FirebaseFirestore db = FirebaseFirestore.getInstance();
private DocumentReference mDocRef = db.getInstance().document("buses/bus_id_1");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FirebaseApp.initializeApp(this);
setContentView(R.layout.activity_main);
busesText = (TextView)findViewById(R.id.showData);
}
public void getData(View view){
mDocRef.get().addOnSuccessListener(new OnSuccessListener<DocumentSnapshot>() {
@Override
public void onSuccess(DocumentSnapshot documentSnapshot) {
if (documentSnapshot.exists()) {
Bus bus = documentSnapshot.toObject(Bus.class);
busesText.setText(bus.getLine());
}
}
});
}
当我单击按钮时,这就是我在控制台中看到的内容:
W / RenderThread:类型= 1400审核(0.0:733273):avc:拒绝{读取} name =“ perf_ioctl” dev =“ proc” ino = 4026533695 scontext = u:r:untrusted_app:s0: c512,c768 tcontext = u:object_r:proc:s0 tclass =文件许可= 0 V / FA:不活动,正在与服务断开连接
可能是什么原因?
答案 0 :(得分:0)
看起来您的数据库不允许进行读取操作,因此您需要更改Firestore数据库的规则。它应该看起来像这样:-
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write;
}
}
}
注意:-仅当您想从应用程序更新数据库时才允许写。