创建firebase身份验证帐户和firestore条目的原子方法

创建firebase身份验证帐户和firestore条目的原子方法,firebase,flutter,google-cloud-firestore,Firebase,Flutter,Google Cloud Firestore,我正在构建这个flifter应用程序,用户可以在其中使用firebase auth注册。当这种情况发生时,我有一个firebase cloud函数,它监听onCreate身份验证事件,并为该用户创建一个条目,其中包含firestore中的其他信息 在我的UI中,当用户在firebase身份验证系统上进行身份验证时(我收听onAuthStateChanged),我尝试使用存储在firestore中的他的信息初始化我的应用程序 问题是,从用户在firebase auth系统上进行身份验证到在fire

我正在构建这个flifter应用程序,用户可以在其中使用firebase auth注册。当这种情况发生时,我有一个firebase cloud函数,它监听
onCreate
身份验证事件,并为该用户创建一个条目,其中包含firestore中的其他信息

在我的UI中,当用户在firebase身份验证系统上进行身份验证时(我收听
onAuthStateChanged
),我尝试使用存储在firestore中的他的信息初始化我的应用程序

问题是,从用户在firebase auth系统上进行身份验证到在firestore上创建条目之间存在延迟,这会破坏我的UI


有没有一种原子方法可以在firestore中为他创建一个用户帐户和一个条目来解决这个问题?

为什么要通过云触发器呢?这方面总是会有滞后。您可以创建firebase用户,然后在回调中从客户端写入firestore(甚至可以按相反的顺序执行)。@blaneyneil因为在我看来,这种业务逻辑不应该驻留在客户端上。另外,如果我从客户那里做的话,问题还是一样的,仍然会有延迟。我已经创建了一个GitHub来解决这个问题。我知道我来晚了,但我想我会添加一个建议,因为我面临着类似的问题/问题,通过讨论来解决这个问题可能会很好。解决此问题的一个建议选项是使用Firebase函数在Firebase Auth和Firestore中创建用户,然后向客户端发送成功声明,此时客户端再次使用用户的详细信息进行身份验证。我看不出这种方法有任何主要问题,除了帐户创建延迟稍长一点。看来函数可以通过admin访问Auth。为什么要通过云触发器访问?这方面总是会有滞后。您可以创建firebase用户,然后在回调中从客户端写入firestore(甚至可以按相反的顺序执行)。@blaneyneil因为在我看来,这种业务逻辑不应该驻留在客户端上。另外,如果我从客户那里做的话,问题还是一样的,仍然会有延迟。我已经创建了一个GitHub来解决这个问题。我知道我来晚了,但我想我会添加一个建议,因为我面临着类似的问题/问题,通过讨论来解决这个问题可能会很好。解决此问题的一个建议选项是使用Firebase函数在Firebase Auth和Firestore中创建用户,然后向客户端发送成功声明,此时客户端再次使用用户的详细信息进行身份验证。我看不出这种方法有任何主要问题,除了帐户创建延迟稍长一点。似乎函数可以通过admin访问Auth。