我的Android应用程序的Firebase数据库结构如下:
Users
UserUID
Data
UserUID
Data
由于某些用户使用电子邮件和密码进行身份验证,因此他们的uid格式为 9c16720b-f827-4216-b9f1-a3fa2c311633
.
其他通过Google验证的用户及其uid的格式为 google:106458782077325555555
.
我试图通过使用此代码查询数据:
private void setupFirebaseQuery() {
String location = mFirebaseRef.child("users/" + mFirebaseRef.getAuth().getUid()).toString();
Log.d("LOCATION", location);
mQuery = new Firebase(location);
}
然后将此数据传递给扩展了FirebaseRecyclerAdapter的this implementation的自定义适配器:
private void setupRecyclerView() {
mAdapter = new FirebaseDataListAdapter(mQuery, Data.class);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setAdapter(mAdapter);
}
我知道适配器有效,因为数据被检索并显示正常 - 除了通过Google验证的用户 . 对于这些用户,不会检索或显示任何数据 .
我还试图在浏览器中访问已记录的网址,并成功检索相关用户的数据,即使是使用Google登录的用户也是如此 . 记录的url确实将uid中的 :
转换为 %3A
,但这似乎是预期的行为 .
有没有人知道为什么成功检索电子邮件/密码用户的数据而不是Google用户?