我的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:不活动,与
服务


可能是什么原因?

最佳答案

看起来您的数据库不允许进行读取操作,因此您需要更改Firestore数据库的规则。它应该看起来像这样:

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write;
    }
  }
}


注意:-仅当您要从应用程序更新数据库时才允许写入。

10-01 14:57
查看更多