无法从Firebase(Cloud Firestore数据库)获取数据

时间:2019-06-15 19:19:22

标签: java android firebase google-cloud-firestore

我的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:不活动,正在与服务断开连接

可能是什么原因?

1 个答案:

答案 0 :(得分:0)

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

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

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