在继续之前,我的应用程序如何等待Firebase中的云函数执行写操作?

在继续之前,我的应用程序如何等待Firebase中的云函数执行写操作?,firebase,google-cloud-firestore,firebase-authentication,google-cloud-functions,Firebase,Google Cloud Firestore,Firebase Authentication,Google Cloud Functions,我有一个云函数,在新用户注册后在数据库中创建自定义用户对象。 同时,在应用程序中,用户注册后,他们会被转移到主页 问题是,主页中第一个执行的函数(至关重要)是获取用户对象,因为应用程序中的任何操作都需要用户对象。 但是,由于页面在云函数创建此用户对象之前打开,因此当主页中的函数尝试获取该对象时,它还不存在 这样做的结果是,一旦用户几乎点击了任何内容,它们就会被发送回注册页面。 “注册”活动会识别出他们实际上已登录,并将其发送回主页,在该点上,当对象已创建时,一切都将正常工作,但用户体验不好,感觉

我有一个云函数,在新用户注册后在数据库中创建自定义用户对象。 同时,在应用程序中,用户注册后,他们会被转移到主页

问题是,主页中第一个执行的函数(至关重要)是获取用户对象,因为应用程序中的任何操作都需要用户对象。 但是,由于页面在云函数创建此用户对象之前打开,因此当主页中的函数尝试获取该对象时,它还不存在

这样做的结果是,一旦用户几乎点击了任何内容,它们就会被发送回注册页面。 “注册”活动会识别出他们实际上已登录,并将其发送回主页,在该点上,当对象已创建时,一切都将正常工作,但用户体验不好,感觉像是一个错误


我怎样才能防止呢?在我的注册活动中,我能实现的最简单的事情是什么,在将用户发送到主页之前,等待云函数发出对象已创建的信号?

你可以指示你的应用程序监听它希望创建的文档,使用DocumentReference或任何适用于您的客户机平台的等效工具。显而易见的要求是,你的应用程序知道函数将要创建的文档的确切路径。在您的情况下,听起来客户端可以根据Firebase身份验证分配的用户UID来知道

如果您的应用程序无法识别该函数预期创建的文档,那么该函数将不得不告诉客户端。如果是HTTP类型的函数,则客户端应在响应中接收此文档ID。如果它不是HTTP类型的函数,那么您需要找到另一种方法来通知客户端它正在等待什么


在任何情况下,创建文档时都会触发onSnapshot回调,您可以使用它来确定何时允许用户继续。完成后,您当然应该将侦听器从DocumentReference中删除。

您可以指示应用程序使用DocumentReference或任何与您的客户端平台等效的工具,侦听它希望创建的文档。显而易见的要求是,你的应用程序知道函数将要创建的文档的确切路径。在您的情况下,听起来客户端可以根据Firebase身份验证分配的用户UID来知道

如果您的应用程序无法识别该函数预期创建的文档,那么该函数将不得不告诉客户端。如果是HTTP类型的函数,则客户端应在响应中接收此文档ID。如果它不是HTTP类型的函数,那么您需要找到另一种方法来通知客户端它正在等待什么

在任何情况下,创建文档时都会触发onSnapshot回调,您可以使用它来确定何时允许用户继续。完成后,当然应该从DocumentReference中删除侦听器