javascript - Firebase 存储连接到 Angular 应用
问题描述
我想将图像存储在 Firebase 存储中的网络应用中。我已经使用 npm (npm i firebase angularfire2)安装了 firebase 。我的应用程序在控制台中抛出此错误:
Error: StaticInjectorError(AppModule)[LoginComponent -> AngularFireStorage]:
StaticInjectorError(Platform: core)[LoginComponent -> AngularFireStorage]:
NullInjectorError: No provider for AngularFireStorage!
这是我的 app.module.ts
import { environment } from '../environments/environment';
import { AngularFireModule } from 'angularfire2';
import { AngularFirestoreModule } from 'angularfire2/firestore';
imports: [
AngularFireModule.initializeApp(environment.firebase),
AngularFirestoreModule.enablePersistence(),
....],
providers: [AngularFireModule],
这是我的环境.ts
export const environment = {
production: false,
firebase: {
apiKey: xxxxxxxxxxxxx
authDomain: xxxxxxxxxxxxx
databaseURL: xxxxxxxxxxxxx
projectId: xxxxxxxxxxxxx
storageBucket: xxxxxxxxxxxxxx
messagingSenderId: xxxxxxxxxxxxx
appId: xxxxxxxxxxxxx
measurementId: xxxxxxxxx
}
}
我正在尝试在某些组件中调用某些函数:
onFileSelected(event) {
var n = Date.now();
const file = event.target.files[0];
const filePath = `RoomsImages/${n}`;
const fileRef = this.storage.ref(filePath);
const task = this.storage.upload(`RoomsImages/${n}`, file);
task.snapshotChanges().pipe(
finalize(() => {
this.downloadURL = fileRef.getDownloadURL();
this.downloadURL.subscribe(url => {
if (url) {
this.fb = url;
}
console.log(this.fb);
});
})
)
.subscribe(url => {
if (url) {
console.log(url);
}
});
}
有谁知道为什么我的控制台说我仍然没有提供者?
解决方案
正如 exepction 所暗示的那样,您似乎AngularFireStorageModule
在导入中丢失了。当你使用:
AngularFirestoreModule.enablePersistence()
它所做的只是保持您的调用,因此必须在任何其他方法之前调用它。调用persist后,您仍然需要单独导入模块AngularFireStorageModule
。
imports: [
BrowserModule,
FormsModule,
AngularFireModule.initializeApp(fbConfig),
AngularFirestoreModule.enablePersistence(),
AngularFireStorageModule,
],
希望能帮助到你 :)
推荐阅读
- swift - 快速从 .npy 转换为 MLMultiArray 以进行 CoreML 预测
- verilog - 如何使用 Verilog 从 100MHz 时钟生成 400MHz 和 500MHz 时钟?
- python - 为什么它不从 YouTube 获取任何“a”标签?
- python - 将 Zeep 对象转换为 DataFrame
- php - 在 PHP 中将变量添加到外部 URL
- swift - 将导航栏按钮向右移动一点
- ssas - TM1:错误:'|'附近的语法不正确 (将数值插入 sql 查询)
- c++ - C++ 左值引用
- javascript - 行为主题正在控制台中加载数据,但模板在角度变为空白
- botframework - 英雄卡 - 唱歌按钮不打开弹出窗口