我开始使用Google平台了。
我正在开发一个Android应用程序,它将收集信息并将其存储在Firebase应用程序中。其思想是Google助手函数可以查询这些信息并将其读回-例如
好的,谷歌,跟Simons应用说,告诉我上一次XYZ是什么时候做的
然而,我遇到的问题是如何使这个成为多用户。
我已经让Android应用程序收集数据并将其放入云中。我正在使用FirebaseUser和安卓应用程序中的getUid()来获得一个独特的id,这是一个像uVHkia8RRgWD8GGPVvW4AUDUK2这样的28个字符串。
我在Google上设置了操作,让它通过网络实现连接到API.AI,并让Node.js在firebase函数中工作。
不幸的是,我得到的UserID看起来更像:HTge48H0CF2FC5jJQCigFBc-UCQ
问题是,这个UserID与我从Filebase用户获得的UserUID不一样。
我在用
let ApiAiApp = require('actions-on-google').ApiAiApp;
const app = new ApiAiApp({request: request, response: response});和
const userId = app.getUser().userId;我遗漏了什么?我看到了对OAuth2、帐户链接等的引用。我不完全确定在这一点上该做什么。现在我所需要做的就是像从FirebaseUser.getUID()获得FirebaseUser.getUID()一样,获取FirebaseUser.getUID(),以便在Firebase数据库中查找数据。
我觉得剩下的应该是笔直的。
关于从助手链接到Firebase有大量的文档,但是关于实际身份验证的文档很少。到目前为止,我还没有设置像授权代码流、隐式流之类的流,也没有针对API.AI和实现选项设置用户名/密码。坦白地说,我现在不确定该去哪里。
发布于 2017-09-02 09:45:19
app.getUser().userId提供的用户被设计为持久匿名标识符。它大致相当于在web服务器上设置的cookie --您可以使用它来确定您以前是否见过这个用户,以及他们在您的Action中做了什么,但它与任何外部帐户没有很大关系。
不幸的是,目前您拥有的最佳解决方案是使用帐户连接,这需要您设置一个OAuth2服务器。作为此设置的一部分,您需要创建三个组件:
对于auth代码、访问令牌和刷新令牌,要注意的一点是,您需要有某种方法从这些代码/令牌映射到Firebase ID。
关于OAuth实现和这些步骤中的每一个,还有许多其他的细节。有关更多详细信息,请参阅https://developers.google.com/actions/identity/oauth2-code-flow。
https://stackoverflow.com/questions/46005716
复制相似问题