我计划在Nuxt提供的fetch()
方法中从Firestore查询一些数据,然后将其发送到商店。问题在于查询需要Firebase Auth信息(Firestore规则更为精确),并且afaik将尚未连接Firebase Auth或已加载活动用户,因为这是在客户端发生的。因此,这意味着查询将没有身份验证信息?我将如何解决这个问题?我环顾四周,发现您可以使用Cookie来存储Firebase身份ID,然后在存储区的nuxtServerInit()
中,加载用户并获取正确的uid,依此类推,但是Firebase仍然不了解用户并且我还没有找到使用cookie中的ID将用户加载到服务器端的Firebase Auth中的方法。
任何帮助将不胜感激! (我发布的内容非常混乱,但希望你们能理解要点)
我使用Google作为登录提供商没有任何帮助。
更新:
我做了一些挖掘,发现成功登录后,您可以从idToken
中获取accessToken
和AuthCredential
。我认为您可以将它们存储在cookie,然后使用signInWithCredential()
在服务器上登录用户,并使用cookie中的令牌传递可以使用GoogleAuthProvider
创建的新GoogleAuthProvider.credential(idToken, accessToken)
。
同样,我不确定这样做是否安全或正确的方法,但是我认为它至少应该起作用,因为现在Firebase现在将已经在服务器端与用户有关,因此对Firestore的调用应该是no有关身份验证信息的问题。
我目前无法对此进行测试,但是对此有一些想法,谢谢!
仍然无法测试,但希望有人对此进行思考。