2017-12-20 23 views
0

私はノードjsとfirebase..withhereを持つサインアップ関数を作成しました。Firebase固有のIDを更新する方法authからUIDに送る.push

var admin = require('./../config/firebase-admin'); 
    var database = admin.database(); 
    var express = require('express'); 
    var router = express.Router(); 
    var _ = require('underscore'); 
    var fillable = { 
     // fbId: "", 
     firstName: "", 
     middleName: "", 
     lastName: "", 
     birthdate: "", 
     gender: "", 
     address: "", 
     email: "", 
     phone: "", 
     password: "", 
     imageUrl: "", 
     token: "", 
     createdAt: "", 
     updatedAt: "", 

    }; 
     router.post('/client', (req, res) => { 
      var ref = database.ref('clients'); 


      var body = _.pick(_.assign(fillable, req.body), _.keys(fillable)); 

      body['createdAt'] = moment().format('YYYY-MM-DD HH:mm:ss'); 
      ref.push(body); 

      res.json(
         { 
         "messages": [ 
          {"text": "You are now registered as Client."} 
         ] 
         } 
        ); 
     }); 

は今、私の質問は .pushによって生成されている固有のIDを更新するための任意の可能性があります。..これは正常に動作します....しかし、私は .pushを使用する場合には、自動的にIDを生成し、何をしようとしているのかは、ユーザーがサインアップしてページを開くとデータをfirebaseに保存することです。ユーザーがアプリを使用して認証のために電話番号を入力すると、UIDは自動生成されたIDではなく一意のIDになります。出来ますか?。

答えて

0

これはおそらくupdateとして実装できます。ペイロードで更新する:

{ 
    'old_id': null, 
    'new_id': { 
    ... 
    } 
} 

しかし、私はこのデザインを再考することを強くお勧めします。エントリの一意のIDを変更することは、ほとんどのシステムでは良い考えではありません。元のエントリの子属性をuidにすることができるかどうかを確認してください。

+0

私がやりたかったのは、まずウェブから登録されているデータを挿入することです。電話番号が認証されると、dbのユニークIDが認証のUIDによって更新されます。携帯でも可能ですか? –

+0

上記の方法は、キー更新をどのように実装するかです。 'old_id'の下のデータを' new_id'に移動し、 'old_id'を削除します。これは、単一の更新呼び出しとして実装できます。 –

関連する問題