本文整理汇总了TypeScript中@angular/fire/firestore.AngularFirestore.doc方法的典型用法代码示例。如果您正苦于以下问题:TypeScript AngularFirestore.doc方法的具体用法?TypeScript AngularFirestore.doc怎么用?TypeScript AngularFirestore.doc使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类@angular/fire/firestore.AngularFirestore
的用法示例。
在下文中一共展示了AngularFirestore.doc方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的TypeScript代码示例。
示例1:
db.object('PERRINNTeams/' + this.UI.currentTeam + '/chatReplayMode').valueChanges().subscribe(snapshot => {
if (snapshot != undefined) {
this.chatReplayMode = snapshot ? true : false;
}
this.previousMessageTimestamp = 0;
this.previousMessageUser = '';
this.draftMessageDB = false;
this.draftImage = '';
this.draftImageDownloadURL = '';
this.draftMessage = '';
this.messageNumberDisplay = 15;
this.teamMessages = this.db.list('teamMessages/' + this.UI.currentTeam, ref => ref.limitToLast(this.messageNumberDisplay)).snapshotChanges().pipe(map(changes => {
this.UI.loading = false;
const updateObj = {};
changes.forEach(c => {
updateObj['teamReads/' + this.UI.currentUser + '/' + this.UI.currentTeam + '/' + c.payload.key] = true;
});
this.db.database.ref().update(updateObj);
return changes.map(c => ({key: c.payload.key, values: c.payload.val()}));
}));
if (this.chatReplayMode) {
this.chatReplayLoop();
}
this.draftMessageUsers = this.db.list('teamActivities/' + this.UI.currentTeam + '/draftMessages/').snapshotChanges().pipe(map(changes => {
return changes.map(c => ({key: c.payload.key, values: c.payload.val()}));
}));
afs.doc<any>('PERRINNTeams/'+this.UI.currentUser+'/viewTeams/'+this.UI.currentTeam).valueChanges().subscribe(userTeam => {
if (userTeam!=null&&userTeam.lastChatVisitTimestamp!=undefined) {this.lastChatVisitTimestamp = Number(userTeam.lastChatVisitTimestamp); }
else this.lastChatVisitTimestamp=0;
});
});
示例2: switchMap
switchMap(user => {
if (user) {
return this.afs.doc<User>(`users/${user.uid}`).valueChanges();
} else {
return of(null);
}
})
示例3: switchMap
switchMap((user: any) => {
if (user) {
this.userId = user.uid;
return this.afs.doc<IUser>(`users/${user.uid}`).valueChanges();
} else {
return of(null);
}
})
示例4: switchMap
switchMap(user => {
if (user) {
Sentry.configureScope((scope) => {
scope.setUser({ 'email': user.email });
});
return this.afs.doc<User>(`users/${user.uid}`).valueChanges();
} else {
return of(null);
}
}),
示例5: followTeam
followTeam(teamID: string, userID: string) {
const now = Date.now();
this.afs.doc<any>('PERRINNTeams/'+userID+/viewTeams/+teamID).update({
lastChatVisitTimestamp: now,
name: this.UI.currentTeamObj.name,
imageUrlThumb: this.UI.currentTeamObj.imageUrlThumb ? this.UI.currentTeamObj.imageUrlThumb : '',
});
this.db.object('subscribeTeamUsers/' + teamID).update({
[userID]: true,
});
}
示例6: updateUserData
private updateUserData(user, enteredName?: string) {
const userRef: AngularFirestoreDocument<any> = this.afs.doc(`users/${user.uid}`);
const data: User = {
uid: user.uid,
email: user.email,
displayName: user.displayName || enteredName,
photoURL: user.photoURL || null,
};
return userRef.set(data, { merge: true });
}
示例7: timestampChatVisit
timestampChatVisit() {
if (this.currentTeamObjKey != this.currentTeam) {return; }
const now = Date.now();
this.afs.doc<any>('PERRINNTeams/'+this.currentUser+/viewTeams/+this.currentTeam).update({
lastChatVisitTimestamp: now,
name: this.currentTeamObj.name,
imageUrlThumb: this.currentTeamObj.imageUrlThumb ? this.currentTeamObj.imageUrlThumb : '',
});
this.db.object('subscribeTeamUsers/' + this.currentTeam).update({
[this.currentUser]: true,
});
}
示例8: updateUserData
// Sets user data to firestore after succesful login
private updateUserData(user: User) {
const userRef: AngularFirestoreDocument<User> = this.afs.doc(
`users/${user.uid}`
);
const data: User = {
uid: user.uid,
email: user.email || null,
displayName: user.displayName || 'Anon',
photoURL: user.photoURL || 'https://api.adorable.io/avatars/100/andrews.codes.png'
};
return userRef.set(data);
}
示例9: SetUserData
SetUserData(user) {
const userRef: AngularFirestoreDocument<any> = this.afs.doc(`users/${user.uid}`);
const userData: User = {
uid: user.uid,
email: user.email,
displayName: user.displayName,
photoURL: user.photoURL,
emailVerified: user.emailVerified
};
return userRef.set(userData, {
merge: true
});
}
示例10: toggleSetting
public async toggleSetting(setting: string, value: boolean) {
try {
const newSetting = { [setting]: !value };
const dictionary = await this.dictionariesService.currentDictionary.pipe(first()).toPromise();
await this.afs.doc(`dictionaries/${dictionary.id}/config/settings`).set(newSetting, { merge: true });
this.snackBar.open('Setting updated', '', { duration: 2000 });
} catch (err) {
this.snackBar.open('Failed to update setting.', '', {
panelClass: 'snackbar-error',
duration: 3000
});
}
}