无法从 Firebase(Cloud Firestore 数据库)获取数据
Posted
技术标签:
【中文标题】无法从 Firebase(Cloud Firestore 数据库)获取数据【英文标题】:Unable to fetch data from Firebase (Cloud Firestore Database) 【发布时间】:2019-10-29 23:53:47 【问题描述】:我的 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=文件许可=0 V/FA:不活动,断开与 服务
可能是什么原因?
【问题讨论】:
此消息与任何 Firebase SDK 均无关。这是由 android 平台内部的东西记录的。 您的应用会崩溃吗? @AlexMamo 不,它不会崩溃,只是在我单击按钮时不显示数据。 您能否重新检查您的文件先生或从 Firestore 发布您的数据 【参考方案1】:您的数据库似乎不允许读取操作,因此您需要更改 Firestore 数据库的规则。它应该是这样的:-
service cloud.firestore
match /databases/database/documents
match /document=**
allow read, write;
注意:- 仅当您想从应用程序更新数据库时才允许写入。
【讨论】:
我在规则中有这个 在初始化 FirebaseApp 后尝试在 onCreate() 中初始化 db 和 myDocRef。 谢谢,但还是不行。 E/EnhancedIntentService: 绑定到服务失败而且我点击按钮时也出现上一个错误 拒绝重新初始化以前失败的类 java.lang.Class:java.lang.NoClassDefFoundError:解析失败:Landroid/view/查看$OnUnhandledKeyEventListener; 原因:java.lang.ClassNotFoundException:在路径上找不到类“android.view.View$OnUnhandledKeyEventListener”:DexPathList** 拒绝在先前失败的类 java.lang 上重新初始化。类:java.lang.NoClassDefFoundError:解析失败:Landroid/view/View$OnUnhandledKeyEventListener;以上是关于无法从 Firebase(Cloud Firestore 数据库)获取数据的主要内容,如果未能解决你的问题,请参考以下文章
INVALID_ARGUMENT:每个请求最多允许 500 次写入 - Firebase Cloud Function - Firestore
Firebase Cloud Functions:无法从文件中读取凭据
无法从 Firebase(Cloud Firestore 数据库)获取数据