我的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);
}
然后将此数据传递给扩展this implementation FirebaseRecyclerAdapter的自定义适配器:
private void setupRecyclerView() {
mAdapter = new FirebaseDataListAdapter(mQuery, Data.class);
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
mRecyclerView.setAdapter(mAdapter);
}
我知道适配器有效,因为数据被检索并显示正常 - 除了通过Google验证的用户。对于这些用户,不会检索或显示任何数据。
我不认为这是Firebase中的权限问题,因为我暂时将读取和写入设置为true。我还尝试在浏览器中访问已记录的网址,并成功检索相关用户的数据,即使是使用Google登录的用户也是如此。记录的网址会将uid中的:
转换为%3A
,但这似乎是预期的行为。
有没有人知道为什么成功检索电子邮件/密码用户的数据而不是Google用户?