Firebase Firechat UI中的自定义身份验证未正确填充UID

Firebase Firechat UI中的自定义身份验证未正确填充UID,firebase,Firebase,我正在使用自定义身份验证令牌来启动FirechatUI,该令牌失败,出现未捕获错误:FirechatUI:缺少必需参数el 乔:81个目标 我怀疑这是因为authData的uid字段为null(auth:“{”uid:“joe”}”…“uid”:null) 我在GoLang中创建auth令牌,如下所示 func genChatToken(username string) (string, error) { token := jwt.New(jwt.SigningMethodHS256)

我正在使用自定义身份验证令牌来启动FirechatUI,该令牌失败,出现未捕获错误:FirechatUI:缺少必需参数
el
乔:81个目标

我怀疑这是因为authData的uid字段为null(auth:“{”uid:“joe”}”…“uid”:null)

我在GoLang中创建auth令牌,如下所示

func genChatToken(username string) (string, error) {
  token := jwt.New(jwt.SigningMethodHS256)
  token.Claims["v"] = 0
  token.Claims["iat"] = time.Now().Unix()

  json, err := json.Marshal(map[string]string{
    "uid": username,
  })
  if err != nil {
    return "", err
  }
  token.Claims["d"] = string(json)

return token.SignedString([]byte("..."))
}

并以

chatRef.authWithCustomToken({{ .params.token }}, function(error, authData) {
  if (error) {
    console.log(error);
  }
});
下面是Stacktrace

firechat.min.js:2 Uncaught Error: FirechatUI: Missing required argument `el`
firechat.min.js:2 t
joe:82 (anonymous function)firebase-debug.js:5400
fb.core.util.EventEmitter.onfirebase-debug.js:11989
Firebase.onAuthjoe:79 (anonymous function)

“el”参数指FirechatUI将聊天窗口注入的div。如果在实例化FirechatUI时您的“firechat包装器”div不存在,那么它将抛出此错误。

John,并查看它如何根据Firebase进行解析。此外,如果可能,还包括Firechat中的堆栈跟踪。假设这是JavaScript,您可以使用
firebase debug.js
代替
firebase.js
来获得更有意义的堆栈跟踪。谢谢@kato。在上面添加了stacktrace。令牌的身份验证为({“d”:“{“uid\”:“joe\”}”,“iat”:1426267318,“uid”:“joe”,“v”:0}),但我认为问题在于您需要在登录用户之前创建用户。我不确定“创建用户”是什么意思,但在生成您自己的auth令牌时,您只需调用authWithCustomToken()--无需创建,通过对令牌进行签名,您可以验证用户是否存在且有效。也许你应该包括你的认证代码,因为它似乎是相关的。我不明白的是,如果用户字段已经填充到某个地方。如果我尝试验证一个没有eist的用户,它是被创建的吗?没有用户。它是提供访问权限的签名令牌。如果您正在创建令牌,您可以决定这意味着什么。假设,如果您创建了一个自定义令牌,那么您已经检查了该用户是否存在于某个系统中。您正在验证有效令牌,这是您的全部权限。如果您不了解这个过程,那么您可能需要集成的身份验证,而不是创建自己的令牌。
firechat.min.js:2 Uncaught Error: FirechatUI: Missing required argument `el`
firechat.min.js:2 t
joe:82 (anonymous function)firebase-debug.js:5400
fb.core.util.EventEmitter.onfirebase-debug.js:11989
Firebase.onAuthjoe:79 (anonymous function)