截至 2020 年 6 月 9 日,Firebase 测试实验室机器人脚本仍然不支持 facebook 登录。这里说明了,
注意:Robo 脚本记录不会捕获您在测试应用程序之外的操作。例如,不会记录通过 Facebook、Twitter 和其他社交应用程序的登录。
因此,您不能指示机器人通过机器人脚本在 sdk 登录页面中输入您的 facebook 测试凭据。
骇人听闻的把戏
但是,我想出了一个绕过 facebook 登录的技巧。我在 alpha 版本中引入了一个隐藏功能(确保它没有交付到生产环境中),如下所述:
- 当登录屏幕中的版本文本被按下 10 次时,我显示了一个带有 EditText 的对话框以手动输入 facebook 访问令牌。
- 从 facebook 开发者控制台我创建了一个测试用户并获得了它的访问令牌
- 我从 android studio 中的 firebase assistant 插件中录制了robo 脚本。
- 在对话框中输入访问令牌后,我执行了从 facebook sdk 获取访问令牌时调用的函数。
- 我构建了一个新的应用程序包并将其与记录的机器人脚本一起提交到机器人测试中。
而已。现在绕过了 facebook 登录。这是示例代码,
var fbTokenInputDialogVisibiltyCountDown = 0
binding.textViewVersion.setOnClickListener {
if (fbTokenInputDialogVisibiltyCountDown < 10) {
fbTokenInputDialogVisibiltyCountDown = fbTokenInputDialogVisibiltyCountDown.inc()
return@setOnClickListener
}
val inputFbTokenBinding =
ViewInputDialogBinding.inflate(LayoutInflater.from(requireContext()))
AlertDialog.Builder(requireContext())
.setView(inputFbTokenBinding.root)
.setNegativeButton("Cancel", null)
.setPositiveButton("Submit") { _, _ ->
val fbAccessToken =
inputFbTokenBinding.editTextToken.value() // extension function show error for invalid input
if (fbAccessToken.isNotEmpty()) onGetFacebookAccessToken(fbAccessToken)
}
.show()
fbTokenInputDialogVisibiltyCountDown = 0
}
我希望它有所帮助。如果您有任何问题,请告诉我?