Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/230.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
在Firebase身份验证(android)后在数据库中创建用户_Android_Firebase_Firebase Realtime Database_Firebase Authentication - Fatal编程技术网

在Firebase身份验证(android)后在数据库中创建用户

在Firebase身份验证(android)后在数据库中创建用户,android,firebase,firebase-realtime-database,firebase-authentication,Android,Firebase,Firebase Realtime Database,Firebase Authentication,我正在构建一个Android应用程序,我希望我的用户经过身份验证,然后添加到数据库中。现在我只使用电子邮件和密码进行身份验证,然后单击register,在Firebase控制台的Auth部分中创建用户 但我也希望将我的用户添加到数据库中。我想添加更多字段(如姓名、地址等),这些字段将存储在Firebase的用户数据库中 我真的不知道该怎么做。谁能解释一下 谢谢 您应该创建一个保存用户的节点,如下所示: users: { userID1: { name: 'Raph' }, u

我正在构建一个Android应用程序,我希望我的用户经过身份验证,然后添加到数据库中。现在我只使用电子邮件和密码进行身份验证,然后单击register,在Firebase控制台的Auth部分中创建用户

但我也希望将我的用户添加到数据库中。我想添加更多字段(如姓名、地址等),这些字段将存储在Firebase的用户数据库中

我真的不知道该怎么做。谁能解释一下


谢谢

您应该创建一个保存用户的节点,如下所示:

users: {
  userID1: {
    name: 'Raph'
  },
  userID2: {
    name: 'Devid'
  }
}
每个登录的用户都有一个唯一的
uid
,可以用作密钥。您可以在用户登录时在authToken中找到它

注意这只是Firebase中用于保存用户数据的普通节点。
这是一种替代解决方案。

这里有一种方法可以将注册的详细信息存储在数据库中

Map<String, String> parameters = new HashMap<>();
FirebaseDatabase mFirebaseInstance;
parameters.put(Constant.TAG_USER, strUsrS.trim());
parameters.put(Constant.TAG_PASS, strPassS.trim());
//use this if needed(pushId)
String pushId = mFirebaseInstance.getReference(YOUR TABLE NAME).getRef().push().getKey();
parameters.put(Constant.TAG_KEY, pushId.trim());

mFirebaseInstance.getReference(YOUR TABLE NAME).getRef().child(strUsrS.trim()).setValue(parameters);
Map参数=新的HashMap();
FirebaseDatabase mFirebaseInstance;
parameters.put(Constant.TAG_USER,strUsrS.trim());
parameters.put(Constant.TAG_PASS,strPassS.trim());
//如果需要,请使用此选项(pushId)
字符串pushId=mFirebaseInstance.getReference(您的表名).getRef().push().getKey();
parameters.put(Constant.TAG_KEY,pushId.trim());
mFirebaseInstance.getReference(您的表名).getRef().child(strUsrS.trim()).setValue(参数);

尝试此实现并执行。。。谢谢

请看这是为了添加其他属性,但不首先解释如何在数据库中创建用户对象…我是否需要在数据库中创建某种结构(使用Firebase控制台)?正如我前面所说的,一旦我连接了一个新用户,“Auth”选项卡中提到了它,但“Database”选项卡仍然是空的。确切地说,您必须在数据库中创建一个条目(不是从控制台,而是在那里使用您的数据)。你的代码应该创建这个条目,并在那里为你的用户存储数据。我确实有完全相同的问题。网络上没有任何内容解释如何向firebase添加用户和其他信息。我能够在firebase自动创建的数据库中查看电子邮件。现在,如果我想将用户名、电话号码、地址等添加到firebase数据库,该怎么办。请帮忙!好的,我通过点击绿色“+”创建了“用户”,所以现在当我转到http://.firebaseio.com/users/userID1,我写入了userID1(长字符串K9gdkDgfd…)和“null”。难道我不能看到电子邮件和密码,比如刚刚创建的用户的数据吗?我真的不明白如何从代码中管理它,我认为一切都应该在数据库中设置(比如,手动创建结构,然后在用户在应用程序上创建帐户时填充它)和在我的代码中,现在,我只做
auth.createUserWithEmailAndPassword(email,password)
你可以找到这些数据(电子邮件、提供商、名称,但不是密码)在authToken中,当您登录用户并将其推送到firebase中时。firebase在内部创建用户配置文件(请参阅我回复中的链接),但它只允许您存储少量数据。如果您想保存更多信息,应使用此方法。希望我清楚:)您是否使用AuthStateListener?不,我应该吗?我真的不明白它的目的。目前在注册活动中,我只有
createUserWithEmailAndPassword