2017-11-04 5 views
0

ポリマー1 *とFirebaseは、計算された結合

でヘッダを返した後、鉄Ajaxの非同期を呼び出すためにどのようにどのようにthis.$$('#ironAjax').generateRequest();return '{"Authorization": "Bearer ' + token + '"}';後にコールされる非同期操作を行うことができますか?私はヘッダーの値を返す必要がありますし、鉄アヤックスの要求を呼び出す。

<iron-ajax 
    url="[[HOST]][[LISTINGS]]?foo=foo" 
    id="ironAjax" 
    handle-as="json" 
    headers="[[setAuth()]]", 
    on-error="errorHandler" 
    loading="{{ironLoading}}" 
    last-response="{{listings}}"></iron-ajax> 

pageActivated: function(activated) { 
    if (activated) { 
     this.setAuth(); 
    } 
    }, 

setAuth:()=> { 
    firebase.auth() 
    .onAuthStateChanged((token) => { 
     return '{"Authorization": "Bearer ' + token + '"}'; 

     this.$$('#ironAjax').generateRequest(); // NEED TO CALL AFTER 
               // HEADER IS SET 

    }) 

答えて

0

Iは、ヘッダに直接変更して状況を処理することができました。うまくいけば、これは、同じ状況で他の誰を助けることができる:

行動:

<script> 
    AuthIronAjax = { 
    rawSetAuth: (user, ajax) => { 
     if (user) { 
     user.getIdToken().then((token) => { 
      ajax.headers['Authorization'] = 'Bearer ' + token; 
      ajax.generateRequest(); 
     }); 
     } 
    }, 

    setAuth: function (ajax) { 
     firebase.auth() 
     .onAuthStateChanged((user)=> this.rawSetAuth(user, ajax)); 
    } 
    }; 
</script> 

要素それはで使用されている注意:鉄のページをactivatedを結合暗黙のホストプロパティで使用されている。

observers: ['pageActivated(activated)'], 

    behaviors: [AuthIronAjax], 

    pageActivated: function(activated) { 
    if (activated) { 
     this.setAuth(this.$.ironAjax); 
    } 
    }, 
関連する問題