我试图在我的项目上访问firebase.storage(),用:
我找到了这个解决方案,并创建了我的.component.ts文件:
import { Component } from '@angular/core';
declare var firebase : any;
@Component({
template: '<img [src]="image">'
})
export class RecipesComponent {
image: string;
constructor() {
const storageRef = firebase.storage().ref().child('images/image.png');
storageRef.getDownloadURL().then(url => this.image = url);
}
}
Run Code Online (Sandbox Code Playgroud)
我在浏览器控制台中收到以下错误:
EXCEPTION: Error: Uncaught (in promise): EXCEPTION: Error in ./bstorageComponent class FBStorageComponent_Host - inline template:0:0
ORIGINAL EXCEPTION: Error: No Firebase App '[DEFAULT]' has been created - call Firebase App.initializeApp().
ORIGINAL STACKTRACE:
Error: No Firebase App '[DEFAULT]' …Run Code Online (Sandbox Code Playgroud) 我正在使用AngularFire2(2.0.0-beta.2)与angular2(2.0.0-rc.4)组合.我想从Angularfire2访问本机firebase对象(不是AngularFire根对象).
在我的组件中,我想进行如下调用:
firebase.auth().currentUser.updateEmail("user@example.com")
Run Code Online (Sandbox Code Playgroud)
firebase是本机firebase对象,就像你从下面的片段得到的那样:
<script src="https://www.gstatic.com/firebasejs/3.1.0/firebase.js"></script>
<script>
// Initialize Firebase
// TODO: Replace with your project's customized code snippet
var config = {
apiKey: "apiKey",
authDomain: "projectId.firebaseapp.com",
databaseURL: "https://databaseName.firebaseio.com",
storageBucket: "bucket.appspot.com",
};
firebase.initializeApp(config);
</script>
Run Code Online (Sandbox Code Playgroud)
但我不明白如何设置我的angular2组件,以便firebase对象在其中可见.可能是一个非常简单的问题需要解决,但我不知道如何解决 - 我不是一个有角度的专家.我希望有和AngularFire api得到对象,但没有.
此外,我试图这样做的原因是我不认为angularfire2 api是完整的(这可以理解,因为它仍处于测试版)并且我正在努力解决这个问题.例如,我想更新用户的电子邮件地址或密码,或向他们发送忘记密码的电子邮件.AngularFire2中似乎还没有这个功能,所以我尝试使用本机Firebase对象来实现.