角度通用| firebase-admin | 代码:'app/invalid-credential'|套接字挂断

Him*_*sal 8 node.js angular-universal firebase-admin angular

import * as admin from 'firebase-admin';
var serviceAccount = require('./keys/keyfile.json');
admin.initializeApp({
  credential: admin.credential.cert(serviceAccount),
  databaseURL: "https://test.firebaseio.com"
});

var registrationToken = "--some-key--";

var payload = {
  notification: {
    title: "$GOOG up 1.43% on the day",
    body: "$GOOG gained 11.80 points to close at 835.67, up 1.43% on the day."
  },
  data: {
    stock: "GOOG",
    open: "829.62",
    close: "635.67"
  }
};


function panelMessage(){
admin.messaging().sendToDevice(registrationToken, payload)
  .then(function(response) {
    // See the MessagingDevicesResponse reference documentation for
    // the contents of response.
    console.log("Successfully sent message:", response);
  })
  .catch(function(error) {
    // console.log(serviceAccount);
    var date = new Date();
    console.log(date.toString());
    console.log("Error sending message:", error);
  });
}
Run Code Online (Sandbox Code Playgroud)

我通过节点运行此代码,它工作,但当我在angular-universal中添加它

server.ts

文件..它给出以下错误..

发送消息时出错:{错误:通过"凭证"属性向initializeApp()提供的凭据实施无法获取有效的Google OAuth2访问令牌,但出现以下错误:"socket hang up".在新FirebaseAppError(D)的FirebaseAppError.FirebaseError [作为构造函数](D:\ angular2MH\firebase - panel\panel \node_modules\firebase-admin\lib\utils\error.js:39:28)中的FirebaseAppError.Error(native)处:\ angular2MH\firebase - panel\panel \node_modules\firebase-admin\lib\utils\error.js:84:23)在D:\ angular2MH\firebase - panel\panel \node_modules\firebase-admin\lib\firebase- app.js:119:23位于Zone.run的ZoneDelegate.invoke(D:\ angular2MH\firebase - panel\panel \node_modules\zone.js\dist\zone-node.js:232:26)(D:\ angular2MH)\firebase - panel\panel \node_modules\zone.js\dist\zone-node.js:114:43)在D:\ angular2MH\firebase - panel\panel \node_modules\zone.js\dist\zone-node.js :在Zone.runTask(D:\ angular2MH\firebase - 的ZoneDelegate.invokeTask(D:\ angular2MH\firebase - panel\panel \node_modules\zone.js\dist\zone-node.js:265:35)处:502:57 panel\panel \node_modules\zone.js\dist\zone-node.js:154:47)在drainMicroTaskQueue(D:\ angular2MH\firebase - panel\panel \node_modules\zone.js\dist\zone-node.js: 401:35)
errorInfo:{code:'app/invalid-credential',message:'通过"credential"属性提供给initializeApp()的凭据实现无法获取有效的Google OAuth2访问令牌,但出现以下错误:"socket hang up".}}

我检查了时间(在许多地方读到可能是问题)并且他们都被同步了..任何人都可以帮我解决这个问题吗?我正在使用这个存储

Him*_*sal 4

从 Firebase-Support 来看,Angular-Universal 不是我们官方支持的库。因此无法提供 OAuth。

为了解决这个问题,我为 firebase 创建了另一个服务器,并从通用服务器进行 api 调用。现在工作正常。