
최종사이트 주소 : https://uikyo-final.firebaseapp.com


호스팅기능을 이용해서 페이지 호스팅
주요 기능으로 로그인을 하였을때 알림설정을 하여 유기동물의 정보에 대한 알림(구글이메일)을 받을수 있다.


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | $("#loginBtn").click(function () { var provider = new firebase.auth.GoogleAuthProvider(); firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION).then(function (result) { return firebase.auth().signInWithPopup(provider); }).then(function (result) { var token = result.credential.accessToken; // The signed-in user info. user = result.user; // ... $("#logoutBtn").show(); $("#loginBtn").hide(); $("#subInfoBtn").show(); $("#subDelBtn").show(); $("#loginUserName").text(user.displayName + "님 환영합니다."); }).catch(function (error) { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; }); }); | cs |
구글 인증기능의 세션설정하는법

세션에 저장되는 내용
1 2 3 4 5 6 7 8 9 10 11 12 | $("#subBtn").click(function () { var session_data = sessionStorage.getItem("firebase:authUser:사용자의 파이어베이스 API키"); if (session_data != null) { var parse_json_data = jQuery.parseJSON(session_data); } if (session_data != null) { var email = parse_json_data.email; } }); | cs |
세션에 저장된 데이터가 있는지 확인하는 코드와 세션코드가 존재할때
데이터를 가져오는법


데이터 베이스 기능을 이용하여 알림을 보낼때 필요한 데이터 저장


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | 'use strict'; const functions = require('firebase-functions'); const nodemailer = require('nodemailer'); const gmailEmail = functions.config().gmail.email; const gmailPassword = functions.config().gmail.password; const mailTransport = nodemailer.createTransport({ service: 'gmail', auth: { user: gmailEmail, pass: gmailPassword } }); const APP_NAME = '유기동물 다찾아'; exports.sendToSubUser = functions.firestore.document('sendEmail/{docId}').onCreate((snap, context) => { const mailOptions = { from: `${APP_NAME} <noreply@firebase.com>`, to: snap.data().d_email }; mailOptions.subject = `정보가 등록되었습니다.`; mailOptions.html = `<img src="${snap.data().d_profile}" height="30%" width="30%"><br> ${snap.data().d_animal_info_text}<br> ${snap.data().d_abandonment_info_text}<br> ${snap.data().d_notice_info_text}<br> ${snap.data().d_care_info_text}`; return mailTransport.sendMail(mailOptions).then(() => { return console.log('이메일 전송성공:', snap.data().d_email); }); }); | cs |
함수 기능을 이용하여 알림데이터 베이스에 도큐먼트가 생성되는것에 트리거를 설정하여
이메일을 보내주는 소스

발송된 이메일
덧글