Android 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();

我是Firebase数据库的新手

在我的应用程序中,我已经使用firebase登录到facebook。我这样保存这些信息

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);
      }}}