Android Firebase-如何将Facebook登录的数据保存到数据库
我是Firebase数据库的新手 在我的应用程序中,我已经使用firebase登录到facebook。我这样保存这些信息Android Firebase-如何将Facebook登录的数据保存到数据库,android,facebook,firebase,firebase-realtime-database,Android,Facebook,Firebase,Firebase Realtime Database,我是Firebase数据库的新手 在我的应用程序中,我已经使用firebase登录到facebook。我这样保存这些信息 FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser(); if (user != null) { String name = user.getDisplayName(); String email = user.getEmail();
FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
if (user != null) {
String name = user.getDisplayName();
String email = user.getEmail();
Uri photoUrl = user.getPhotoUrl();
String uid = user.getUid();
nameTextView.setText(name);
emailTextView.setText(email);
uidTextView.setText(uid);
try {
URL img_value = null;
img_value = new URL(photoUrl+"");
String cadena = img_value+"";
//Picasso.with(getApplicationContext()).
Picasso.with(getApplicationContext()).load(cadena).into(perfil);
} catch (MalformedURLException e) {
e.printStackTrace();
}
} else {
goLoginScreen();
}
我可以显示我的信息,如全名、个人资料图片等;但现在我想像这样保存在Firebase数据库中:
{
"users": {
"uid1": {
"name": "peter parker",
}
"uid2": {
"name": "barry allen",
}
"uid3": {
"name": "bruce banner",
}
}
}
作为uid1,uid2。。。uid=user.getUid()代码>我认为这将是关键。
我知道我可以用push为每个人生成一个密钥,但我相信我可以把uid作为密钥。在应用程序中,我们还将实现一个基本的聊天功能
我已经搜索并尝试编码,但我没有得到我需要的:
String value = nameTextView.getText().toString();
DatabaseReference mRoot = FirebaseDatabase.getInstance().getReference();
DatabaseReference mUser = mRoot.child("users");
DatabaseReference mUid = mUser.child("uid1");
DatabaseReference mName = mUid.child("name");
mName.setValue(value);
我想在有人注册应用程序后自动保存姓名。因为稍后我将为每个用户添加一个事件列表作为感兴趣的列表(他喜欢保存的事件)。
谢谢你的建议 试试下面的代码……这对你来说非常合适
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("users").child("uid1").child("name").setValue(your_value);
尝试下面的代码…这将非常适合你
DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference();
mDatabase.child("users").child("uid1").child("name").setValue(your_value);
制作一个身份验证dart文件:auth.dart
导入此软件包:
1) 导入“包:cloud_firestore/cloud_firestore.dart”;
2) 导入“包:firebase_auth/firebase_auth.dart”;
3) 导入“包:flatter_facebook_登录/flatter_facebook_登录.dart”;”软件包:flatter_facebook_login/flatter_facebook_login.dart'
粘贴此代码:
class AuthService {
static final auth = FirebaseAuth.instance;
static final _firestore = Firestore.instance;
final db = Firestore.instance;
final FacebookLogin facebookLogIn = FacebookLogin();
final String email;
final String username;
AuthService({ this.email, this.username});
Future<void> signUpWithFacebook() async{
try {
var facebookLogin = new FacebookLogin();
var result = await facebookLogin.logIn(['email']);
if(result.status == FacebookLoginStatus.loggedIn) {
final AuthCredential credential =
FacebookAuthProvider.getCredential(
accessToken: result.accessToken.token,
);
final FirebaseUser user = (await
FirebaseAuth.instance.signInWithCredential(credential)).user;
await
db.collection('user').document(user.displayName).setData({'name':
user.displayName, 'email': user.email});
print('signed in ' + user.displayName);
return user;
}
}catch (e) {
print(e.message);
}}}
制作一个身份验证dart文件:auth.dart
导入此软件包:
1) 导入“包:cloud_firestore/cloud_firestore.dart”;
2) 导入“包:firebase_auth/firebase_auth.dart”;
3) 导入“包:flatter_facebook_登录/flatter_facebook_登录.dart”;”软件包:flatter_facebook_login/flatter_facebook_login.dart'
粘贴此代码:
class AuthService {
static final auth = FirebaseAuth.instance;
static final _firestore = Firestore.instance;
final db = Firestore.instance;
final FacebookLogin facebookLogIn = FacebookLogin();
final String email;
final String username;
AuthService({ this.email, this.username});
Future<void> signUpWithFacebook() async{
try {
var facebookLogin = new FacebookLogin();
var result = await facebookLogin.logIn(['email']);
if(result.status == FacebookLoginStatus.loggedIn) {
final AuthCredential credential =
FacebookAuthProvider.getCredential(
accessToken: result.accessToken.token,
);
final FirebaseUser user = (await
FirebaseAuth.instance.signInWithCredential(credential)).user;
await
db.collection('user').document(user.displayName).setData({'name':
user.displayName, 'email': user.email});
print('signed in ' + user.displayName);
return user;
}
}catch (e) {
print(e.message);
}}}