可以等待firebase cloud auth.user().OnCreate函数吗?

问题描述 投票:0回答:2

只要用户注册,云函数就会在实时数据库中创建一个新的用户对象。问题是,我需要在firebase.auth().signIn().then()之后马上访问用户数据,但onCreate调用的时间比then()语句早。

有没有办法在firebase.auth().signIn()中等待auth.user().onCreate方法?

firebase firebase-realtime-database google-cloud-functions
2个回答
2
投票

不,这是不可能的。 一个云函数只能有一个触发事件,而且不能改变。

如果你有一个在Realtime Database中创建一些数据的函数,并且你想让客户端应用等待这些数据被创建,你需要做的就是在预期数据的位置添加一个监听器。 例如,如果正在使用新创建的用户的UID创建数据(比如。/user/{uid}),你所要做的就是以函数的方式构建该数据的路径,添加监听器,并在监听器触发后继续你的应用程序的UI。 你当然可以监听那些还不存在的数据。

这和我在这里写的类似于 此职位除了使用Firestore而不是Realtime Database,但过程是一样的。


0
投票

是的,把这个添加到你的Firebase Cloud Functions中。

export const onNewUserAuth = functions.auth.user().onCreate((user) => {
    //To get user Auth Credentials add below code:
    const newUserUID = user.uid
    const newUserEmail = user.email

    //Add Data to Realtime Database this way
    return admin.database().ref(<your-path-here>).update({ "UID": newUserUID })

})

现在,如果你想在用户创建后立即获得数据,并且信息存储在数据库中, 使用另一个 onCreate() 来获取数据。但请记住,这将使你付出另一个函数调用的代价。

© www.soinside.com 2019 - 2024. All rights reserved.