【问题标题】:Sending the firebase device token to server using angular2使用 angular2 将 firebase 设备令牌发送到服务器
【发布时间】:2017-03-21 11:01:58
【问题描述】:

firebase.service.ts

下面的代码是我的 angular2 应用程序中的 firebase 服务。配置文件在 app.module.ts 中。我想将设备令牌 ID 发送到服务器。一切正常,但“this.http.post(....)”部分不起作用。

    import { Injectable } from '@angular/core';
    import { Http, Response, Headers, RequestOptions } from '@angular/http';
    import { Observable } from 'rxjs/Rx';

    import 'rxjs/add/operator/map';
    import 'rxjs/add/operator/catch';

    import * as firebase from 'firebase';
    import { AuthService } from './auth.service';
    import { ErrorModel } from '../_models/index';

    @Injectable()
    export class FirebaseService {
        private messaging;
        private errors = ErrorModel;

        constructor(private authService:AuthService, private http:Http) {
          this.messaging = firebase.messaging();
        }

        request_permission_for_notifications(){
            this.messaging.requestPermission().then(()=>{
              return firebase.messaging().getToken();
            }).then(token=>{
              if(this.authService.is_logged_in){
                let options = this.authService.get_header();
                let api_url = '/api/subscribe-device';
                this.http.post(api_url,{token:token},options).map((response:Response)=>response.json());
              }else{
                console.log({success:false,message:this.errors.not_logged_in_error});
              }
            }).catch(err=>{
              console.log('Unable to get permission to notify.', err);
            });
        }
    }

【问题讨论】:

  • 检查您的控制台是否有错误?
  • @PardeepJain 控制台没有任何错误。

标签: angular typescript firebase firebase-notifications


【解决方案1】:
request_permission_for_notifications(){
      return new Promise<string>((resolve, reject)=>{
        this.messaging.requestPermission().then(function(){
          return firebase.messaging().getToken();
        }).then(function(token){
          resolve(token);
        }).catch(function(err){
          console.log('Unable to get permission to notify.', err);
        });
      });
    }

subscribe_device(token:string){
      if(this.authService.is_logged_in()){
        let options = this.authService.get_header();
        let api_url = '/api/subscribe-device';
        return this.http.post(api_url,{token:token},options).map((response:Response)=>response.json());
      }else{
        console.log({success:false,message:this.errors.not_logged_in_error});
      }
    }

我使用 promise 来解析我的令牌,然后我使用新函数“subscribe_token”将我的令牌发布到服务器。

【讨论】:

    猜你喜欢
    • 2011-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-15
    • 2019-11-13
    • 2016-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多