میتوانید به کاربران اجازه دهید بااستفاده از «حسابهای Google» خودشان با Firebase اصالتسنجی کنند. میتوانید از «کیت توسعه نرمافزار Firebase» برای انجام جریان ورود به سیستم Google استفاده کنید، یا جریان ورود به سیستم را بهصورت دستی بااستفاده از کتابخانه «ورود به سیستم با Google» انجام دهید و شناسه تولیدشده را به Firebase ارسال کنید.
پیامواره هوشوارهای برای کمک هوشوارهای
برای دریافت کمک از هوش مصنوعی، پیامواره زیر را در عامل کدنویسی هوش مصنوعی خود (مثل Antigravity، Claude Code، Codex، و Cursor) کپی کنید. میتوانید پیامواره را سفارشیسازی کنید و با نمایندهتان تکرار کنید. برای اطلاعات دقیق نصب، به مهارتهای عامل Firebase مراجعه کنید.
Help me use Firebase in my app.
1. Make sure that **Firebase agent skills** are installed and updated. For Claude Code, Codex, or Cursor agents, help me install the Firebase plugin. For other agents, run `npx skills add firebase/agent-skills`. Always try to use **Firebase agent skills** for Firebase-related tasks.
2. Help me set up and use Firebase Authentication with Google Sign-In in my app.
قبل از شروع
- Firebase را به پروژه جاوا اسکریپت خود اضافه کنید.
- Google را بهعنوان ارائهدهنده ورود به سیستم برای پروژه Firebase خود فعال کنید:
- در کنسول Firebase، به امنیت > اصالتسنجی بروید.
- در برگه روش ورود به سیستم، ارائهدهنده ورود به سیستم Google را فعال کنید.
- روی ذخیره کردن کلیک کنید.
مدیریت جریان ورود به سیستم با «کیت توسعه نرمافزار Firebase»
اگر درحال ساختن برنامه وب هستید، آسانترین راه برای اصالتسنجی کاربران با Firebase بااستفاده از «حسابهای Google» آنها این است که جریان ورود به سیستم را با «کیت توسعه نرمافزار جاوا اسکریپت Firebase» مدیریت کنید. (اگر میخواهید کاربری را در Node.js یا محیط غیرمرورگر دیگری اصالتسنجی کنید، باید جریان ورود به سیستم را بهصورت دستی مدیریت کنید.)
برای مدیریت جریان ورود به سیستم با «کیت توسعه نرمافزار جاوا اسکریپت Firebase»، این مراحل را دنبال کنید:
- نمونهای از شیء ارائهدهنده Google ایجاد کنید:
Web
import { GoogleAuthProvider } from "firebase/auth"; const provider = new GoogleAuthProvider();
Web
var provider = new firebase.auth.GoogleAuthProvider();
- اختیاری: دامنههای OAuth 2.0 اضافی را که میخواهید
از ارائهدهنده اصالتسنجی درخواست کنید مشخص کنید. برای افزودن محدوده،
addScopeرا فراخوانی کنید. برای مثال:مستندات ارائهدهنده اصالتسنجی را ببینید.Web
provider.addScope('https://www.googleapis.com/auth/contacts.readonly');
Web
provider.addScope('https://www.googleapis.com/auth/contacts.readonly');
- اختیاری: برای بومیسازی کردن جریان OAuth ارائهدهنده به زبان ترجیحی کاربر بدون
گذراندن صریح پارامترهای سفارشی OAuth مربوطه، کد زبان را در نمونه Auth قبلاز شروع جریان OAuth بهروز کنید. برای مثال:
Web
import { getAuth } from "firebase/auth"; const auth = getAuth(); auth.languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // auth.useDeviceLanguage();
Web
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
- اختیاری: پارامترهای سفارشی ارائهدهنده OAuth اضافی را که میخواهید با درخواست OAuth ارسال کنید مشخص کنید. برای افزودن پارامتر سفارشی،
setCustomParametersرا در رساننده مقداردهیشده با شیئی که حاوی کلید طبق مشخصات مستندات رساننده OAuth و مقدار مربوطه است فراخوانی کنید. برای مثال:پارامترهای OAuth الزامی رزروشده مجاز نیستند و نادیده گرفته خواهند شد. برای جزئیات بیشتر، مرجع ارائهدهنده اصالتسنجی را ببینید.Web
provider.setCustomParameters({ 'login_hint': 'user@example.com' });
Web
provider.setCustomParameters({ 'login_hint': 'user@example.com' });
- بااستفاده از شیء ارائهدهنده Google، با Firebase اصالتسنجی کنید. میتوانید
کاربرانتان را ترغیب کنید با «حسابهای Google» خود به سیستم وارد شوند،
یا با باز کردن پنجره بالاپری یا با هدایت کردن به صفحه ورود به سیستم. روش هدایت در دستگاههای همراه ترجیح داده میشود.
- برای ورود به سیستم با پنجره بالاپر، با
signInWithPopupتماس بگیرید:همچنین توجه داشته باشید که میتوانید نشان OAuth ارائهدهنده Google را بازیابی کنید که میتوان از آن برای واکشی دادههای اضافی بااستفاده از Google APIs استفاده کرد.Web
import { getAuth, signInWithPopup, GoogleAuthProvider } from "firebase/auth"; const auth = getAuth(); signInWithPopup(auth, provider) .then((result) => { // This gives you a Google Access Token. You can use it to access the Google API. const credential = GoogleAuthProvider.credentialFromResult(result); const token = credential.accessToken; // The signed-in user info. const user = result.user; // IdP data available using getAdditionalUserInfo(result) // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = GoogleAuthProvider.credentialFromError(error); // ... });
Web
firebase.auth() .signInWithPopup(provider) .then((result) => { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a Google Access Token. You can use it to access the Google API. var token = credential.accessToken; // The signed-in user info. var user = result.user; // IdP data available in result.additionalUserInfo.profile. // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
در اینجا میتوانید خطاها را نیز شناسایی و مدیریت کنید. برای مشاهده فهرست کدهای خطا، به اسناد مرجع Auth نگاهی بیندازید.
- برای ورود به سیستم با هدایت به صفحه ورود به سیستم،
signInWithRedirectرا فراخوانی کنید: هنگام استفاده از `signInWithRedirect`، روالهای مطلوب را دنبال کنید.سپس، میتوانید با فراخوانیWeb
import { getAuth, signInWithRedirect } from "firebase/auth"; const auth = getAuth(); signInWithRedirect(auth, provider);
Web
firebase.auth().signInWithRedirect(provider);
getRedirectResultهنگام بار شدن صفحهتان، رمز OAuth ارائهدهنده Google را نیز بازیابی کنید:در اینجا میتوانید خطاها را نیز شناسایی و مدیریت کنید. برای مشاهده فهرست کدهای خطا، به اسناد مرجع Auth نگاهی بیندازید.Web
import { getAuth, getRedirectResult, GoogleAuthProvider } from "firebase/auth"; const auth = getAuth(); getRedirectResult(auth) .then((result) => { // This gives you a Google Access Token. You can use it to access Google APIs. const credential = GoogleAuthProvider.credentialFromResult(result); const token = credential.accessToken; // The signed-in user info. const user = result.user; // IdP data available using getAdditionalUserInfo(result) // ... }).catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.customData.email; // The AuthCredential type that was used. const credential = GoogleAuthProvider.credentialFromError(error); // ... });
Web
firebase.auth() .getRedirectResult() .then((result) => { if (result.credential) { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a Google Access Token. You can use it to access the Google API. var token = credential.accessToken; // ... } // The signed-in user info. var user = result.user; // IdP data available in result.additionalUserInfo.profile. // ... }).catch((error) => { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
- برای ورود به سیستم با پنجره بالاپر، با
اصالتسنجی با Firebase در افزونه Chrome
اگر درحال ساختن برنامه افزونه Chrome هستید، راهنمای «سندهای خارج از صفحه» را ببینید.
مراحل بعدی
پساز اینکه کاربر برای اولینبار به سیستم وارد شد، حساب کاربری جدیدی ایجاد میشود و به اطلاعات اعتباری—یعنی نام کاربری و گذرواژه، شماره تلفن، یا اطلاعات ارائهدهنده اصالتسنجی—که کاربر با آن به سیستم وارد شده است پیوند داده میشود. این حساب جدید بهعنوان بخشی از پروژه Firebase شما ذخیره میشود و میتوان از آن برای شناسایی کاربر در همه برنامههای پروژه شما، صرفنظر از نحوه ورود کاربر به سیستم، استفاده کرد.
-
در برنامههایتان، روش توصیهشده برای اطلاع از وضعیت اصالتسنجی کاربر این است که روی شیء
Authناظر تنظیم کنید. سپس میتوانید اطلاعات نمایه پایه کاربر را از شیءUserدریافت کنید. به مدیریت کاربران مراجعه کنید. در Firebase Realtime Database و Cloud Storage قوانین امنیتی، میتوانید شناسه کاربر یکتای کاربر واردشده به سیستم را از متغیر
authدریافت کنید و از آن برای کنترل دادههایی که کاربر میتواند به آنها دسترسی داشته باشد استفاده کنید.
میتوانید به کاربران اجازه دهید با پیوند دادن اطلاعات اعتباری ارائهدهنده اصالتسنجی به حساب کاربری موجود بااستفاده از چندین ارائهدهنده اصالتسنجی به سیستم برنامهتان وارد شوند.
برای خروج از سیستم کاربر،
signOut را فراخوانی کنید:
Web
import { getAuth, signOut } from "firebase/auth"; const auth = getAuth(); signOut(auth).then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });
Web
firebase.auth().signOut().then(() => { // Sign-out successful. }).catch((error) => { // An error happened. });