如何在离子2 - Firebase 3应用程序中存储自定义配置文件数据?

时间:2017-01-18 15:56:53

标签: firebase ionic2 firebase-authentication angularfire2

我希望能够将自定义数据存储在auth.login返回的JSON对象中 - AngularFire2方法

使用Ionic2中的电子邮件/密码方法进行身份验证 - AngularFire2库。

signin(credentials) {
        return this.af.auth.login(credentials);
    }

this.af.auth.login方法返回包含以下数据的json对象。

 {
      "auth": {
        "uid": "d901fffb-********8099",
        "displayName": null,
        "photoURL": null,
        "email": "****@gmail.com",
        "emailVerified": false,
        "isAnonymous": false,
        "providerData": [
          {
            "uid": "*****@gmail.com",
            "displayName": null,
            "photoURL": null,
            "email": "****@gmail.com",
            "providerId": "password"
          }
        ],
        "apiKey": "AB*********",
        "appName": "[DEFAULT]",
        "authDomain": "******",
        "stsTokenManager": {
          "apiKey": "***********",
          "refreshToken": "ADDl5SEJAWQ90BDG8q1uN6_mn2QYpkMLALUog1ax8lkkmHSQp3jM6CE9BM34ur59Es99rlPnuNM5dsIGAqPZQ3HXRYXpmvr4Jy5UHLgyQEgSg9NydfjXeRuTgajnsPu5bGlJqt679hl_Fv-y_7LIXewW0fr9tzjyH3ur3-_QoXNT99wHazLIwqD4CdsKI95Ka64CI4O12PikH6Huti4vqzxdXy6jq-8jTA",
          "accessToken": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ijk5ZGI1MDc4ZDRkOWUyMTAyZDg1NzA0MWMzMjExNjZiZGE3OGUxZjAifQ.eyJpc3MiOiJodHRwczovL3NlY3VyZXRva2VuLmdvb2dsZS5jb20vcm9hZGJhbmd2YXBwIiwiYXVkIjoicm9hZGJhbmd2YXBwIiwiYXV0aF90aW1lIjoxNDg0MTk1MjY3LCJ1c2VyX2lkIjoiZDkwMWZmZmItNzJkMy00YzVhLThjZGEtOGY0MWYyZjQ4MDk5Iiwic3ViIjoiZDkwMWZmZmItNzJkMy00YzVhLThjZGEtOGY0MWYyZjQ4MDk5IiwiaWF0IjoxNDg0MTk1MjY3LCJleHAiOjE0ODQxOTg4NjcsImVtYWlsIjoibWFnbnVzLm1lbHdpbkBnbWFpbC5jb20iLCJlbWFpbF92ZXJpZmllZCI6ZmFsc2UsImZpcmViYXNlIjp7ImlkZW50aXRpZXMiOnsiZW1haWwiOlsibWFnbnVzLm1lbHdpbkBnbWFpbC5jb20iXX0sInNpZ25faW5fcHJvdmlkZXIiOiJwYXNzd29yZCJ9fQ.tyqjKCJ_QhBGTRw9ji2iq8bbwmyT4i5vt4MsYpoQHwgicew9PWV1OKoGCHQho0l5ilGHkUeXrDAg3xD7_RHhM_CLNnqNJl-m76-F3uYM1AEjzLMPd2j6q6aO6m3E3fWSa5t9rJYtvuCNaKexpAB9g_l_HTOjNsX4E9XNCB5-v0_vjt9uYPsHM5G-yjuOxru-FJYhNwCCpN3rN97XzP9vkBhWSCQTCHBM3yS4xKCgzMeUb909OUxZK4ZrQFLP0BYPB3U1izmYlSdWd_tuLHm5GMqmerdXf08W_737UpOHOZuLls2pO9RVok-FjYAji-wxQTVEI0hq-hr7v1-mCqiIOw",
          "expirationTime": 1484198865797
        },
        "redirectEventId": null
      },
      "uid": "d901f***********8099",
      "provider": 4
    }

我要做的是在公司名称,手机号码,固定电话号码等字段中添加一些这样的字段到上面返回的json对象。

所以auth.login json promise调用存储了配置文件数据,而不是我必须单独在firebase数据库中存储其他数据。

非常感谢任何帮助。

我的系统信息如下:

Cordova CLI: 6.4.0 
Ionic Framework Version: 2.0.0-rc.3
Ionic CLI Version: 2.1.18
Ionic App Lib Version: 2.1.9
Ionic App Scripts Version: 0.0.48
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Linux 4.4
Node Version: v6.9.0
Xcode version: Not installed

使用Angularfire2和firebase 3

2 个答案:

答案 0 :(得分:1)

根据https://docs.ionic.io/services/auth/#storing-data

它应该像

一样简单

auth.user.set('birthdate', '5/17/1985');

但请注意,您必须导入云身份验证服务

编辑:3/13 啊,意识到我忘记了你也必须打电话

auth.user.save()

设置所有字段后,您可以调用.load()来获取最新的数据。

答案 1 :(得分:0)

您也可以这样尝试,不使用auth.user我只调用用户

this.user.set('birthday', '3/04/1999');
this.user.set('username', 'JaneDoe');
this.user.save();