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; }); });
this.route.params.subscribe(params => { this.UI.currentTeam = params.id; this.teamLeaders = this.db.list('PERRINNTeams/' + this.UI.currentTeam + '/leaders').snapshotChanges().pipe(map(changes => { return changes.map(c => ({ key: c.payload.key, values: c.payload.val(), name: this.db.object('PERRINNTeams/' + c.payload.key + '/name').valueChanges(), imageUrlThumb: this.db.object('PERRINNTeams/' + c.payload.key + '/imageUrlThumb').valueChanges(), })); })); this.teamMembers = this.db.list('PERRINNTeams/' + this.UI.currentTeam + '/members').snapshotChanges().pipe(map(changes => { return changes.map(c => ({ key: c.payload.key, values: c.payload.val(), name: this.db.object('PERRINNTeams/' + c.payload.key + '/name').valueChanges(), imageUrlThumb: this.db.object('PERRINNTeams/' + c.payload.key + '/imageUrlThumb').valueChanges(), })); })); this.db.object('PERRINNTeams/' + this.UI.currentTeam + '/parent').snapshotChanges().subscribe(changes => { this.parent = changes.payload.val().toString(); this.parentName = this.db.object('PERRINNTeams/' + this.parent + '/name').valueChanges(); this.parentImageUrlThumb = this.db.object('PERRINNTeams/' + this.parent + '/imageUrlThumb').valueChanges(); }); this.teamChildren = this.db.list('PERRINNTeams/' + this.UI.currentTeam + '/children').snapshotChanges().pipe(map(changes => { return changes.map(c => ({ key: c.payload.key, values: c.payload.val(), name: this.db.object('PERRINNTeams/' + c.payload.key + '/name').valueChanges(), imageUrlThumb: this.db.object('PERRINNTeams/' + c.payload.key + '/imageUrlThumb').valueChanges(), })); })); });
.then(() => { this.db.object<any>(`/teamPayments/${this.UI.currentTeam}/${this.newPaymentID}/response/outcome`).snapshotChanges().subscribe(paymentSnapshot => { if (paymentSnapshot.payload.val().seller_message != null) { this.messagePayment = paymentSnapshot.payload.val().seller_message; } if (this.messagePayment == 'Payment complete.') { this.messagePERRINNTransaction = 'We are now sending COINS to your team...'; } }); this.db.object<any>(`/teamPayments/${this.UI.currentTeam}/${this.newPaymentID}/error`).snapshotChanges().subscribe(paymentSnapshot => { if (paymentSnapshot.payload.val().message != null) { this.messagePayment = paymentSnapshot.payload.val().message; } }); this.db.object<any>(`/teamPayments/${this.UI.currentTeam}/${this.newPaymentID}/PERRINNTransaction`).snapshotChanges().subscribe(transactionSnapshot => { if (transactionSnapshot.payload.val().message != null) { this.messagePERRINNTransaction = transactionSnapshot.payload.val().message; } }); });
this.afAuth.user.subscribe((auth) => { this.db.list('users/' + auth.uid).push({ timestamp: firebase.database.ServerValue.TIMESTAMP, name, familyName, }); });
this.afAuth.user.subscribe((auth) => { if (auth != null) { this.currentUser = auth.uid; this.db.object('PERRINNTeams/' + this.currentUser).valueChanges().subscribe(snapshot => { this.currentUserObj = snapshot; }); afs.collection<any>('PERRINNTeams/'+this.currentUser+'/viewTeams/').valueChanges().subscribe(snapshot => { this.currentUserTeamsObj = snapshot; this.globalChatActivity = false; snapshot.forEach(userTeam => { let chatActivity:boolean=false; if(userTeam.lastChatVisitTimestamp!=undefined)chatActivity=(userTeam.lastMessageTimestamp>userTeam.lastChatVisitTimestamp); else if(userTeam.lastMessageTimestamp!=undefined)chatActivity=true; else chatActivity=false; if (chatActivity) { this.globalChatActivity = true; } document.title = this.globalChatActivity ? '(!) PERRINN' : 'PERRINN'; }); }); if (this.focusUser == null) { this.focusUser = auth.uid; } this.db.database.ref('appSettings/PERRINNServices/').once('value').then(services => { this.services = services; }); } else { this.currentUser = null; this.focusUser = null; this.currentTeam = null; } });
public deleteAsobeData(asobeData: IAsobeData): Promise<void> { // NOTE(baba): remove() は誤って全データを削除できてしまうので、念のため二重でチェック if (typeof asobeData.id === 'undefined') { throw new Error(`You should not throw 'asobeData.$key' with undefined to remove() API!`); } // NOTE(baba): remove()の引数を空にしたり、undefinedやnullを渡すとDBが丸ごと消えるのでテストしないこと! return this.afDb.list('/asobe').remove(asobeData.id); }
authorPage(authorKey) { this.db.object('users/' + authorKey).valueChanges().subscribe(response => { console.log("Author Key:", authorKey); console.log("Response:", response); response["key"] = authorKey; this.navCtrl.push(UserPage, response, {animate: true, animation: 'wp-transition', direction: 'forward'}); }); }
constructor( public db: AngularFireDatabase, private fireAuth : AngularFireAuth, public navCtrl: NavController, public navParams: NavParams, public menuCtrl: MenuController, platform: Platform, private loadingCtrl: LoadingController ) { this.notification = db.object('users/'+fireAuth.auth.currentUser.uid+'/notifications/'+this.navParams.data.notifID).snapshotChanges().pipe(map(c => ({ key: c.payload.key, ...c.payload.val()} ))); db.object('users/'+fireAuth.auth.currentUser.uid+'/notifications/'+this.navParams.data.notifID).update({ notificationUnread: 0 }); }
updateDraftMessageDB() { if ((this.draftMessage != '') != this.draftMessageDB) { this.db.object('teamActivities/' + this.UI.currentTeam + '/draftMessages/' + this.UI.currentUser).update({ name: this.UI.currentUserObj.name, draftMessage: this.draftMessage != '', draftMessageTimestamp: firebase.database.ServerValue.TIMESTAMP, }); } this.draftMessageDB = (this.draftMessage != ''); }
constructor( public modalCtrl: ModalController, public afs: AngularFirestore, public fireAuth: AngularFireAuth, public db: AngularFireDatabase, public navCtrl: NavController, public navParams: NavParams) { this.addressesRef = db.list('users/'+fireAuth.auth.currentUser.uid+'/addresses/', ref => ref.orderByChild('name')) this.addresses = this.addressesRef.valueChanges(); }