【问题标题】:External Firebase communication to Elm via Ports?通过端口与 Elm 进行外部 Firebase 通信?
【发布时间】:2017-01-17 10:36:16
【问题描述】:

我有自定义 Firebase 身份验证进程 (Auth0 => Firebase),因此我使用带有 Svelte 的 TypeScript 运行我的所有登录逻辑,一旦我从 sessionStorage 或从新登录获得成功的 JWT 令牌,我启动我的 Elm 应用程序,发送通过标志获取一些 JWT 和配置文件信息。这是一个 SPA,具有路由和页面,所有组件化并且工作正常。

我现在唯一真正的问题是,当涉及到 firebase 时,当然,ElmFire 存在,但是我如何给它一个有效的身份验证令牌等。并且没有加载 JS 的 Firebase 和 Elm 的 ElmFire,看起来就像Kb 太多了。

有没有一种很好且有效的方法可以让 Elm 输出“嘿,听听这个 ref”,并带有“嘿 Elm,我有一些新的数据给你这个 ref”。告诉 JS 监听的端口,以及告诉 Elm 新数据的订阅。无需为每个侦听器提供端口,也无需为每个数据回调订阅。

理想情况下,我希望我的更新,发送一个接受回调消息的 CMD,更新要调用的函数和一个引用。这样我就可以将它存储在某种列表中,当我从 JS 获取新的数据有效负载时,我可以遍历我的列表以找到与 ref 匹配的项目,执行更新,发送带有字符串值,因此解码发生在页面更新时。

有人可以随意将这个问题抽象为更笼统的问题。感觉这个问题可能更多人会问。

【问题讨论】:

  • 您想做的一切都可以通过端口和订阅来完成。 (请注意,elmfire 尚未更新到 0.18。)
  • @SimonH 但是有没有办法用一个端口/子监听多个引用?

标签: javascript firebase firebase-authentication elm


【解决方案1】:

问题是端口/子必须在 Elm 中输入。

因此,带有一个参数的单个端口/子可以侦听多个引用,只要它们都具有相同的类型。

如果没有,您可以使用多个参数定义端口/子,每个参数用于您要交换的每种数据类型,并在适当的参数中传递任何特定数据。其他参数将为空。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-09
    • 2014-12-22
    相关资源
    最近更新 更多