java - Android Firebase 身份验证,无法访问调试中可见的用户 Twitter 数据
问题描述
我在我的 android 应用程序上使用 Firebase Twitter 身份验证,注册后我想访问我的 Twitter 用户名和其他数据。
我打电话:
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser()
然后在调试时,我看到 zze 和 zzi 内部,我们在字符串内部有我想要访问的数据:
该字符串中的一些数据如下所示:
{
"screen_name": "tom_maks",
"favourites_count": 2181,
"description": "some description",
"created_at": "Sat Jan 11 08:57:54 +0000 2020",
"id_str": "some id",
"profile_link_color": "1DA1F2",
"is_translation_enabled": false,
"translator_type": "none",
"id": 0,
"url": "http://tomasmaks.com/",
"name": "Tomas Maksimavicius",
}
当我想访问screen_name时,我尝试像这样访问这个字符串:
Log.d(TAG, "testing getUserFromProvider: " + user.zze().get(1).zzi());
但似乎数据不可访问,因为user.zze()具有不同格式的字符串数据并且zze().get(1)不存在。Firebase 似乎改变了数据的顺序。
你们中有人知道为什么这是firebase的问题吗?甚至有可能以某种方式访问我的应用程序上的这串数据吗?
也许有一个使用 Twitter api 的解决方法?
解决方案
我能想到的就是使用反射,尽管我不推荐它,因为在Firebase
项目的每个新版本上Proguard
都会更改方法/变量的名称。
这些参数仅在成功登录结果时可用。
new OnSuccessListener<AuthResult>() {
@Override
public void onSuccess(AuthResult result) {
result.getAdditionalUserInfo().getProfile(); // this will return a map containing specific identity provider user info
}
}
注意:我没有测试它,因为我没有整个环境,但我的答案是基于这个文档。
推荐阅读
- eclipse - 基于 Eclipse-RCP 的应用程序能否进行“本地”恢复
- python - 对 Python 的 HTTP 请求 VBA 代码不起作用
- python - Django:使用 FilteredSelectMultiple 小部件限制 UI 中的选择数量
- javascript - (CSP) 内容安全策略。处理从外部库添加的内联样式的方法
- jenkins - Jenkins Pipeline - 从远程 git url 读取属性
- javascript - 如何使用 TypeScript 验证对象与接口没有重叠的属性?
- java - 我是否必须拆分具有多个端点的控制器,这些端点代表更复杂对象的组件的 CRUD 操作?
- python - 熊猫选择根数为 3 次的行
- macos - Wireshark v3.05 在 macOS Catalina (10.15) 下崩溃:QT 库不兼容?
- django - 我应该为我的项目使用 Instagram postgressql id 生成器技术吗