如何在没有登录名和密码的情况下从rest api添加用户到firebase数据库?

时间:2016-12-04 11:08:44

标签: firebase firebase-realtime-database firebase-authentication

我正在进行基于firebase的聊天。 聊天将成为我们现有网站的一部分,该网站已经进行了身份验证和注册,用户也无法创建聊天室或输入聊天室, 这一切都将由网站自动处理。用户只能读取和写入以前由站点添加的聊天室的消息。 对于自动验证,我认为使用signInWithCustomToken()方法。 但我不太了解如何自动创建用户并将其添加到聊天室。 firebase.auth().createUserWithEmailAndPassword(email, password) 方法需要电子邮件和密码,但我想添加没有任何电子邮件和密码的用户。我已经阅读了文档,但找不到任何解决方案,有人可以帮助我吗?

2 个答案:

答案 0 :(得分:1)

我遇到了类似的问题并且选择使用电子邮件和密码登录,并且每次我需要添加用户时都创建了一封电子邮件(username@myapp.com)和密码

答案 1 :(得分:0)

您可以创建自定义令牌并使用它们进行身份验证。示例java代码

public static String createCustomToken(String userId, Map<String, Object> additionalClaims) {
FirebaseOptions options = new FirebaseOptions.Builder()
.setServiceAccount(new FileInputStream(FIREBASE_ACCESS_FILE)).build();
FirebaseApp.initializeApp(options);
Task<String> customToken = FirebaseAuth.getInstance().createCustomToken(userId, additionalClaims);
return customToken.getResult().toString();
}
enter code here

当用户登录您的网站时,您可以返回上面生成的自定义令牌。客户端应用程序(ios,android或web)可以使用此自定义令牌登录,如下所示

  firebase.auth().signInWithCustomToken(token).catch(function(error) {
              // Handle Errors here.
              var errorCode = error.code;
              var errorMessage = error.message;
              // [START_EXCLUDE]
              if (errorCode === 'auth/invalid-custom-token') {
                alert('The token you provided is not valid.');
              } else {
                console.error(error);
              }
              // [END_EXCLUDE]
            }