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

标签 java android firebase google-cloud-firestore

我的 Cloud Firestore 数据库中有一些数据。该集合的名称是bus,我有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: type=1400 audit(0.0:733273): avc: denied { read } for name="perf_ioctl" dev="proc" ino=4026533695 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:proc:s0 tclass=file permissive=0 V/FA: Inactivity, disconnecting from the service

可能是什么原因?

最佳答案

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

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

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

关于java - 无法从 Firebase(Cloud Firestore 数据库)获取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56613494/

相关文章:

java - 如何在不同的线程中做不同的事情?

java - 如何更改 JTree 中的 "root"目录名称?

android - setLevel okhttp LoggingInterceptor 弃用

android - Firebase Crashlytics 不支持 NDK?

firebase - 从 Cloud Firestore 获取所有用户的所有帖子

java - 我在向字符串值添加双引号时遇到问题。第二个引号显示远离值

java - 双重检查锁定的乱序写入

java - 空指针异常无法修复

java - Android Studio中如何保存按钮的状态?

firebase - 从多对多结构中检索数据,类似于 Parse query.include