如何获取登录用户?
我这样做: console.log('登录...'); this.afAuth.auth.signInWithEmailAndPassword(this.email, this.password);
但是文档并不清楚如何让用户进入代码。它们在模板中显示了一种方式,但我需要存储当前用户。
firebase firebase-authentication angularfire2 google-cloud-firestore
我刚刚升级到 AngularFire2 rc 5.0。
我修改了我的代码,使其与新类型和功能相匹配,但是在尝试订阅 a 时出现以下错误.object(path):
Property 'subscribe' does not exist on type 'AngularFireObject'
Run Code Online (Sandbox Code Playgroud)
我的代码如下。
供应商:
getEvent(id: string): AngularFireObject<any> {
let path = `/events/${id}`;
return this.af.object(path).valueChanges();
}
Run Code Online (Sandbox Code Playgroud)
页:
...
event$: AngularFireObject<any>;
...
// Retrieve event's info
this.event$ = this.eventService.getEvent(this.id);
// Retrieve event's ownership info
let subscription = this.event$.subscribe(event => {
this.owner$ = this.userService.getUserPublicInfo(event.owner);
});
Run Code Online (Sandbox Code Playgroud)
任何的想法?
observable ionic-framework angularfire2 angular angularfire5
在我的 Angular 应用程序中,Firebase 返回一个显示bad-app-name为代码的错误。我在 angular 应用程序中使用 angularfire2。
我已经仔细检查了 Firebase 配置,没问题,那么如何解决这个错误。
app.components.ts
import { Component, OnInit } from '@angular/core';
import { FormsModule, NgForm } from "@angular/forms";
import { AngularFireDatabase } from "angularfire2/database";
import { Router } from '@angular/router';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent{
isLoggedIn: boolean = false;
courses: any[];
constructor(public db: AngularFireDatabase) {
db.list('/Courses').valueChanges().subscribe(courses => {
this.courses = courses;
console.log(this.courses);
});
}
login() {
this.isLoggedIn = !this.isLoggedIn;
}
user:any;
saveData(formData) {
if (formData.valid) …Run Code Online (Sandbox Code Playgroud) 这是保存在数据库中并重用 angularfire2 返回的 urlgetDownloadURL()而不是getDownloadURL()每次需要显示来自 Firebase 存储的图像时执行的好做法吗?
如果我getDownloadURL()在组件中使用,则每次访问组件时都会重新加载图像。我想避免这种情况。如果我在上传图像后将 url 保存在我的数据库中,然后每次需要显示图像时都使用这个 url,这可以解决问题。但是,这可能不是正确的方法,Firebase 存储可能会在某个时候更新 url。
我正在尝试将具有出生日期和激活日期的人的个人信息保存到 Angular 的 Firestore 数据库中;
但是,传递带有Date()类型字段的对象,日期将保存为字符串:
this.treatment.activationDate = new Date();
// gives such result in firestore with string type
// activationDate: "2018-11-16T09:48:51.137Z"
Run Code Online (Sandbox Code Playgroud)
还尝试使用服务器时间戳,但以下方法未返回有效值:
firebase.firestore.FieldValue.serverTimestamp()
Run Code Online (Sandbox Code Playgroud)
结果在 Firestore(不允许上传图片抱歉:)):
activationDate: (map)
_methodName: FieldValue.serverTimestamp
Run Code Online (Sandbox Code Playgroud)
但是,此方法无法为我提供自定义日期的时间戳(例如birthDate) 那么使用angular 在firestore 中将日期保存为时间戳对象的最佳方法是什么?
.....
import * as firebase from 'firebase';
.....
export class AddPatientComponent implements OnInit {
......
this.treatment.activationDate = new Date();
//firebase.firestore.FieldValue.serverTimestamp();
console.log("timestamp: ", this.treatment.activationDate, firebase.firestore.FieldValue.serverTimestamp());
this.patientService.savePatient(this.patient, this.treatment, this.courseMeds);
Run Code Online (Sandbox Code Playgroud)
还有一个模型:
export class CourseMed{
amountPerDay: number;
atc: String;
name: String;
days: number;
dosage: number;
form: …Run Code Online (Sandbox Code Playgroud) javascript firebase angularfire2 angular google-cloud-firestore
在 Firestore 中,我有一个具有数组类型属性(名为“items”)的文档。该数组包含ShoppingItem具有以下结构的对象:
export class ShoppingItem {
id?: string;
name: string;
checked = false;
}
Run Code Online (Sandbox Code Playgroud)
为了完成起见,在文档结构下方:
export interface ShoppingList {
id: string;
name?: string;
items: ShoppingItem[]; // <-- This is the array property I am updating
}
Run Code Online (Sandbox Code Playgroud)
从用户界面,用户可以更新checked对象的属性,我想相应地更新数据库。我从 Firebase 文档中读到,我们可以使用它arrayRemove/arrayUnion以原子方式删除/添加数组项。
为了更新现有项目,我是否必须删除旧对象并每次添加新对象(嵌套承诺),如下所示?或者有可能以更优雅的方式?
updateItem(listId: string, item: ShoppingItem) {
const docRef = this.db.collection("list").doc(listId)
return docref.update({ items: firestore.FieldValue.arrayRemove(item) })
.then(() => {
{
docRef.update({ items: firestore.FieldValue.arrayUnion(item) });
}
});
}
Run Code Online (Sandbox Code Playgroud)
在数组中删除和添加项目的另一个缺点是更新的元素在 UI 中闪烁。
每当我尝试添加时都显示错误
ng add angular/fire@next
Run Code Online (Sandbox Code Playgroud)
使用命令行界面
编译@angular/fire : main 作为 umd
编译@angular/fire : 模块为 esm5
编译@angular/fire/auth : es2015 为 esm2015
编译 @angular/fire/auth : main as umd
编译 @angular/fire/auth : 模块为 esm5
编译@angular/fire/auth-guard : es2015 为 esm2015
编译@angular/fire/auth-guard : main as umd
编译 @angular/fire/auth-guard : 模块为 esm5
编译@angular/fire/database : es2015 为 esm2015
编译@angular/fire/database : main as umd
编译@angular/fire/database : 模块为 esm5
编译@angular/fire/database-deprecated : es2015 为 esm2015
编译@angular/fire/database-deprecated : main as umd
错误:试图用 ngcc 备份文件覆盖 E:/portfolio/node_modules/@angular/fire/bundles/database.umd.js.__ivy_ngcc_bak,这是不允许的。在 InPlaceFileWriter.writeFileAndBackup (E:\portfolio\node_modules@angular\compiler-cli\ngcc\src\writing\in_place_file_writer.js:36:23) 在 E:\portfolio\node_modules@angular\compiler-cli\ngcc\src\写入\in_place_file_writer.js:30:69 at Array.forEach () …
我想使用 AngularFire 读取 Firebase Firestore 中的特定文档。
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AngularFirestore , AngularFirestoreCollection, AngularFirestoreDocument } from 'angularfire2/firestore';
import { Observable } from 'rxjs';
import { async } from 'q';
@Component({
selector: 'app-read-more-page',
templateUrl: './read-more-page.component.html',
styleUrls: ['./read-more-page.component.scss']
})
export class ReadMorePageComponent implements OnInit {
postCatagory: string;
databaseName: any;
uuid: string;
documentObject:any; //real docum
//observables
items: Observable<any[]>;
doc : AngularFirestoreDocument<any>
post : Observable<any>;
constructor(private route: ActivatedRoute , private afs: AngularFirestore ) …Run Code Online (Sandbox Code Playgroud) javascript firebase angularfire2 angular google-cloud-firestore
我正在使用 AngularFire 和 Angular 8 来构建一个应用程序,但我有一个愚蠢的问题(我认为这实际上很愚蠢)。
我构建了一个简单的服务来包装AngularFireAuth:
import { Injectable } from '@angular/core';
import { AngularFireAuth } from '@angular/fire/auth';
import { User } from 'firebase';
import { Subject } from 'rxjs';
import { MessageService } from 'primeng/api';
@Injectable({
providedIn: 'root'
})
export class AuthService {
private user: Subject<User> = new Subject();
private isLoggedIn: Subject<boolean> = new Subject();
constructor(private afAuth: AngularFireAuth, private messageService: MessageService) {
this.afAuth.auth.onAuthStateChanged(user => {
this.user.next(user);
this.isLoggedIn.next(user !== null);
});
}
isAuthenticated() {
return this.isLoggedIn.asObservable();
} …Run Code Online (Sandbox Code Playgroud) javascript rxjs firebase-authentication angularfire2 angular
我现在处理这个问题已经快两周了。我尝试了很多解决方法,但似乎没有一个有效。我已经安装angular-fire并安装firebase到它的最新版本,尝试过ng add @angular/fire,配置自定义webpack.config.ts,尝试回滚到每个建议的先前版本。没有人解决这个问题。
实际错误:
de-10@de10-LIFEBOOK-A555:~/Desktop$ node dist/server.js
internal/modules/cjs/loader.js:797
throw err;
^
Error: Cannot find module 'firebase/app'
Require stack:
- /home/de-10/Desktop/dist/server.js
at Function.Module._resolveFilename (internal/modules/cjs/loader.js:794:15)
at Function.Module._load (internal/modules/cjs/loader.js:687:27)
at Module.require (internal/modules/cjs/loader.js:849:19)
at require (internal/modules/cjs/helpers.js:74:18)
at Object.<anonymous> (/home/de-10/Desktop/dist/server.js:125276:18)
at __webpack_require__ (/home/de-10/Desktop/dist/server.js:20:30)
at Module.<anonymous> (/home/de-10/Desktop/dist/server.js:125199:70)
at __webpack_require__ (/home/de-10/Desktop/dist/server.js:20:30)
at Module.<anonymous> (/home/de-10/Desktop/dist/server.js:124984:78)
at __webpack_require__ (/home/de-10/Desktop/dist/server.js:20:30) {
code: 'MODULE_NOT_FOUND',
requireStack: [ '/home/de-10/Desktop/dist/server.js' ]
}
Run Code Online (Sandbox Code Playgroud)
我不能放弃 Firebase 因为然后我面临:
ERROR in ../node_modules/@angular/fire/auth/auth.d.ts:4:28 - error TS2307: Cannot find module 'firebase/app'.
4 …Run Code Online (Sandbox Code Playgroud) angularfire2 ×10
angular ×8
firebase ×6
javascript ×5
angularfire ×2
angularfire5 ×1
observable ×1
rxjs ×1