1

我想使用 Firebase 模块“Firebase.ServerValue.TIMESTAMP”将日期保存到带有服务器生成时间戳的 firebase 服务器。

如何配置将 Firebase 作为模块导入 angular2 项目。

我正在使用 Angular2、angular-cli、angularFire2 等。以下是配置设置。

System-config.ts
/** Map relative paths to URLs. */
const map: any = {
    firebase: 'vendor/firebase/lib/firebase-web.js',
    angularfire2: ' vendor/angularfire2'
};
/** User packages configuration.*/
const packages: any = {
      angularfire2: {
        defaultExtension: 'js',
        main: 'angularfire2.js'
      }
};

角-cli-build.js

/* global require, module */
var Angular2App = require('angular-cli/lib/broccoli/angular2-app');
module.exports = function(defaults) {
  return new Angular2App(defaults, {
    vendorNpmFiles: [
      'systemjs/dist/system-polyfills.js',
      'systemjs/dist/system.src.js',
      'zone.js/dist/**/*.+(js|js.map)',
      'es6-shim/es6-shim.js',
      'reflect-metadata/**/*.+(js|js.map)',
      'rxjs/**/*.+(js|js.map)',
      '@angular/**/*.+(js|js.map)',

      // below are the AngularFire entries
      'angularfire2/**/*.js',
      'firebase/lib/*.js'      
    ]
  });
};
4

2 回答 2

7

使用 Angularfire2、Angular 2 和 angular-cli,以下解决方案对我有用。

首先,确保使用以下命令导入 firebase:

import * as firebase from 'firebase';

接下来,使用旧的方式获取时间戳,例如:

let dateNow = firebase.database.ServerValue.TIMESTAMP;
console.log(dateNow);

最后,打开 src/typings.d.ts 并添加:

declare namespace firebase.database.ServerValue {
  let TIMESTAMP: any;
}

最后一部分是什么对我有用,并且与大多数不使用 OP 特定设置的解决方案不同。

于 2016-11-02T03:22:17.200 回答
2

对于旁路方式,您可以使用{'.sv': 'timestamp'}

db.object('path').set({ timestamp: {'.sv': 'timestamp'}}) // angular

firebase.database.ServerValue.TIMESTAMP=={'.sv': 'timestamp'}

于 2018-10-24T04:58:21.873 回答