使用Google UID从Firebase检索数据

时间:2016-03-29 18:23:16

标签: java android firebase firebase-authentication firebase-realtime-database

我的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用户?

0 个答案:

没有答案