Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用firestore';当从node.js调用firestore方法时,是否为s onSnapshot侦听器?_Node.js_Reactjs_Firebase_Google Cloud Firestore_Firebase Admin - Fatal编程技术网

如何使用firestore';当从node.js调用firestore方法时,是否为s onSnapshot侦听器?

如何使用firestore';当从node.js调用firestore方法时,是否为s onSnapshot侦听器?,node.js,reactjs,firebase,google-cloud-firestore,firebase-admin,Node.js,Reactjs,Firebase,Google Cloud Firestore,Firebase Admin,我有一个管理站点,它有一个react前端,使用redux操作,以node.js应用程序作为服务器,使用firebase admin完成工作 我想使用firestore的onsnapshot侦听器。但我不确定这在HTTP协议中是如何工作的 我无法从我的前端应用程序使用firebase管理员,也无法在HTTP协议中从后端创建实时数据库功能 目标:考虑到我的express api为管理员提供了一个单独的身份验证系统,我可以在我的rreact前端集合上设置快照侦听器,而不必经过多个身份验证过程 有解决办

我有一个管理站点,它有一个react前端,使用redux操作,以node.js应用程序作为服务器,使用firebase admin完成工作

我想使用firestore的onsnapshot侦听器。但我不确定这在HTTP协议中是如何工作的

我无法从我的前端应用程序使用firebase管理员,也无法在HTTP协议中从后端创建实时数据库功能

目标:考虑到我的express api为管理员提供了一个单独的身份验证系统,我可以在我的rreact前端集合上设置快照侦听器,而不必经过多个身份验证过程

有解决办法吗

编辑:
我的客户端应用程序当前已使用firebase web app配置数据初始化,但由于我正在使用自己的express server对管理员进行身份验证,firebase web SDK尚未使用firebase进行身份验证,因此我没有权限访问我需要的数据。我不确定我是否需要一个服务帐户,或者一个带有额外设置的web应用程序配置,或者我的建议是使用
signInWithCustomToken()
将Firebase JS SDK集成到您的客户端应用程序中。 这并不太复杂。尽管我认为这在很大程度上取决于您当前的身份验证设置的工作方式

总体思路是: 向您的身份验证服务发送身份验证请求。
像平常一样处理请求。
评估用户是否应该访问Firebase。
如果需要,请使用firebase admin创建自定义令牌并将其发送回用户。
使用客户端上的令牌通过Firebase.auth进行身份验证

您应该确保具有Firestore规则,以允许管理员用户访问您需要的数据


作为一种不使用Firebase客户端SDK的替代方案,您可以有一个长时间运行的节点进程,打开一个
onSnapshot
。您的react应用程序可以使用或通过

接收数据。我的建议是使用
signInWithCustomToken()
将Firebase JS SDK集成到您的客户端应用程序中。 这并不太复杂。尽管我认为这在很大程度上取决于您当前的身份验证设置的工作方式

总体思路是: 向您的身份验证服务发送身份验证请求。
像平常一样处理请求。
评估用户是否应该有权访问Firebase。
如果需要,请使用firebase admin创建自定义令牌并将其发送回用户。
使用客户端上的令牌通过Firebase.auth进行身份验证

您应该确保具有Firestore规则,以允许管理员用户访问您需要的数据


作为一种不使用Firebase客户端SDK的替代方案,您可以有一个长时间运行的节点进程,打开一个
onSnapshot
。您的react应用程序可以使用或通过

接收来自它的数据。您有没有理由不在浏览器上使用firebase js sdk?是的,我需要管理员权限bc它是一个管理站点@NVITIUS您可以添加firestore安全规则,以允许管理员用户访问您需要的所有数据。这样你就可以从客户那里打电话给onSnapshot你能用推荐信来回答吗?我一直在尝试使用firebase web sdk,但我的设置有一个独立于firebase auth的auth系统。因此,当我使用WebSDK时,我没有经过技术验证,因此我在处理权限问题。我不想让主firebase auth bc中的管理员用户帐户看起来很黑。我以为AdminSDK只能在节点环境中使用@nVitius@nVitius在尝试使用redux操作中的AdminSDK时,我只收到了错误。如果您可以在react环境中使用admin sdk,为什么只有node.js、python、java、go和.NET在其受支持的语言中列出?您没有在浏览器上使用firebase js sdk的原因是什么?是的,我需要管理员权限bc它是一个管理员站点@NVITIUS您可以添加firestore安全规则,以允许管理员用户访问您需要的所有数据。这样你就可以从客户那里打电话给onSnapshot你能用推荐信来回答吗?我一直在尝试使用firebase web sdk,但我的设置有一个独立于firebase auth的auth系统。因此,当我使用WebSDK时,我没有经过技术验证,因此我在处理权限问题。我不想让主firebase auth bc中的管理员用户帐户看起来很黑。我以为AdminSDK只能在节点环境中使用@nVitius@nVitius在尝试使用redux操作中的AdminSDK时,我只收到了错误。如果您可以在react环境中使用AdminSDK,为什么只有node.js、python、java、go和.NET在其支持的语言中列出?