将用户 uid 链接到 firebase 数据库

Posted

技术标签:

【中文标题】将用户 uid 链接到 firebase 数据库【英文标题】:Linking user uid to firebase database 【发布时间】:2017-10-06 17:37:54 【问题描述】:

我目前正在 react-native 中制作应用程序,并希望将 firebase 身份验证生成的用户 ID 链接到我的 firebase 数据库中的用户信息。


  users:useruid:
                  //Storing other user information
               

我正在从身份验证中检索 uid 并为这样的用户创建一个新的孩子:

firebase.auth().onAuthStateChanged((user) => 

  console.log(user)

  if(user)

    user.getToken().then((userid) => 
      //Set the initial state
      firebase.database().ref('/users/').child(userid).set(
        'uid': userid,
        'businessName': business,
        'street address': street,
        'city': city,
        'state': state,
        'zipcode': zipcode,
        'productGroup': 0,
        'pom': 0,
        'som': 0,
        'inventory': 0,
        'reporting_and_analytics': 0,
        'accounting': 0
      )

      dispatch(type: types.REGISTER_USER_SUCCESS)

    ).catch(function(error)
      console.log(error.message)
      dispatch(type: types.REGISTER_BUSINESS_FAILURE, error);
    );
  
  else
    console.log("ERROR: Registration error")
  
);

 

我收到错误:关于生成的 uid 的路径无效。任何帮助。我检查了有关 firebase 的文档以及与此相关的类似问题,但仍然遇到相同的错误。

Error

【问题讨论】:

使用uid代替令牌,如firebase.database().ref('/users/').child(user.uid) @cherniv 我收到与 user.uid 相同的错误。同样在documentation user.getToken() 上推荐而不是user.uid。 @Cherniv user.uid 有效。经过几次重试,它成功了。 user.getToken() 生成一个令牌,其中包含一些不能在 firebase 路径上使用的字符。 firebase Invalid Characters 我正在努力解决同样的问题。我意识到你的帖子已经有几年了 - 所以也许事情已经改变了,但我无法让这种方法发挥作用。你还在用这种方式吗? 【参考方案1】:

路径:

firebase.database().ref('/users/').child(userid)

本质上与//users//userid 相同,因为child() 的工作方式显然是不正确的路径。

而是在users 之前和之后丢失/。试试:

firebase.database().ref('users').child(userid)

child() 方法将形成正确的路径。

【讨论】:

谢谢布拉德利。但是,在写入firebase并使用以下命令指定完整路径时,在节点名称之前和之后使用'/'没有遇到任何问题:firebase.database.ref([您正在尝试的节点的完整路径的名称访问])。但是在使用 child() 方法并包含斜杠时存在问题。

以上是关于将用户 uid 链接到 firebase 数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何通过异步调用 uid 从 Firebase 查询数据

如何构建 Firebase 实时数据库?

Vue.js firebase 实例 - 用户 UID 作为数据库引用

如何在 Cloud Functions 存储触发器中获取经过身份验证的 Firebase 用户的 uid

基于 Facebook Id 检索 Firebase uid 的最佳实践

Firebase 身份验证导入是不是会保留给定的 UID?