在Firebase Cloud功能中获取Android用户数据



我正在在 android 中设计语音应用 aog )触发A firebase cloud函数

您可以在下面的图像上看到我的Android应用在过程中实现Google登录,并且Firebase也具有Google用户身份验证。

我想在firebase云功能上阅读我的用户信息(电子邮件,名称等),但我做不到。

我已经使用Google Home而不是Android应用程序做到了。

您知道有什么方法吗?我读了很多教程,但没有人对我有用。


Android实施的最重要部分是Aiconfiguration:

final AIConfiguration config = new AIConfiguration(
                CLIENT_ACCESS_TOKEN,
                AIConfiguration.SupportedLanguages.English,
                AIConfiguration.RecognitionEngine.System);

从api.ai获得client_access_token的位置(如此处)。

另外,API.AI控制台页面使用 webhook ,带有正确触发的firebase云功能。

使用firebaseui实现登录方法。

这种配置中最重要的部分是firebase和Google上的动作:

firebase

您需要为Google填写两个登录选项:

1)白名单客户端ID,如果您在Android项目中使用SHA1指纹,则会自动添加。顺便说一句,我的应用被自动添加。

2) Web SDK配置:从Google Cloud Platform的My Project的Google Cloud Platforms的凭证控制台中填充的字段。

在Google上的操作

在这里我设置了 linking 在此答案中喜欢。


感谢您的帮助。

在某种程度上,是的,问题与帐户链接。

但是,潜在的问题是您正在使用" google"库,但是以的方式调用api.ai并非 在Google上进行操作。因此,没有链接的帐户 - 您拥有来自Android应用程序的帐户,这是Firebase拥有的帐户,但您并没有将其发送给您的满足Webhook。

api.ai本身没有用户身份验证或用户身份的概念。(它确实具有身份验证 - 但这是为了确保Webhook从API.AI获得合法请求。它与用户无关。)它依靠开发人员添加此信息ElseHow。Google Assistant根据您的需求有几种方法,但是如果您不在Google Assistant平台上构建(听起来您不是),并且直接通过API.AI,则需要自己包含此信息。

我对如何使用Apiai-Java-client并不太熟悉,但是看起来您与服务器的每个交易所的一部分看起来都可以包含RequestExtras对象。作为此对象的一部分,您可以包含一个称为"认证"的上下文,该上下文具有参数,其中一个参数可以包括身份验证信息(例如auth令牌,尽管这可能不是一个很好的安全实践)。/p>

好吧,可以在Firebase活动中触发firebase函数,例如写入数据库,存储等等。但是正如您的图片所暗示的那样,有一个API.AI 在使用API.AI之后,在两者之间和您希望触发云功能。因此,您可以使用HTTP触发器并发送请求。查看正式文档并根据需要进行处理。

https://firebase.google.com/docs/functions/http-events

这是这样做的github样本:https://github.com/firebase/functions-samples/tree/master/quickstarts/time-server

除此之外,您还可以使用auth触发器,但中间有API.AI。所以我认为您不想这样做。无论哪种方式,如果愿意,请在Well中检查一下。

https://firebase.google.com/docs/functions/auth-events

希望它有帮助

相关内容

  • 没有找到相关文章

最新更新