بخش اول

در این اموزش قصد داریم ارسال نوتیفیکیشن در فلاتر را بررسی کنیم. یکی از نکات مهم در نوتیفیکیشن ها real time بودن آن می باشد، به طور مثال در برنامه واتساپ اگر برای شخصی پیامی ارسال کنیم، در صورتی که کاربر متصل به اینترنت باشد در همان لحظه نوتیفیکیشن پیام برای شخص نمایش داده می شود، و اگر کاربر به اینترنت متصل نبود، پس از اتصال به اینترنت نوتیفیکشن برای او نمایش داده می شود.

برای این موضوع متدوال ترین راه استفاده از سرویس های فایربیس می باشد، همان طور که  می دانید فایربیس دارای انواع سرویس های مختلف از جمله firebase_meessagin ،firebase_cloud ،analytics و…. می باشد که ما از سرویس firebase_messagin استفاده خواهیم کرد.

در این سری از مقاله ها ما یک چت روم در فلاتر خواهیم ساخت که ویژگی های ارسال و دریافت پیام و دریافت نوتیفیکشن را دارد.

روش کار firebase_messaging به این صورت می باشد که به هر دستگاهی یک توکن اختصاص       می دهد و با استفاده از ان توکن اشخاص شناسایی خواهند شد.

اکثر مقاله ها موارد این چنینی را بدون سرور شخصی و با خود فایربیس انجام میدهند، اما در این مقاله قصد داریم پروژه ای را بررسی کنیم که بدون سرور فایربیس و با استفاده از سرورها و دیتابیس های شخصی می باشند.

سوال : با وجود تحریم ها چگونه می توان از firebase استفاده کرد؟ آیا مشکلی در کار پیش نمی آید؟

یکی از راه هایی که می توان از ویژگی firebase_messaging استفاده نمود، این است که سرور ما در خارج از ایران باشد؛ در این صورت می توان تا حدودی تحریم ها را اثر کرد.

طبق تحقیقات بنده، بهتر است که با ip ایران وارد کنسول فایربیس نشویم تا اکانت ما بسته نشود و همچنین در صورتیکه سرور شخصی ندارید و بخواهید از دیتابیس های خود firebase یعنی cloud firestore استفاده نمایید احتمالا مجبور شوید تا به فیلترشکن وارد برنامه خود شوید!

در ابتدا وارد سایت فایربیس می شویم:

در صورتی که اکانتی ندارید باید وارد قسمت sing in شوید و ایمیل خود را اضافه نمایید و سپس بر روی دکمه Go to console کلیک نمایید

پس از ورود به صفحه کنسول دکمه create a project را انتخاب کنید

برای ساخت پروژه 3 مرحله وجود داره:

مرحله اول : نام دلخواه برای پروژه تون بنویسید و تیک هر دو گزینه رو بزنید و وارد مرحله بعد بشید

مرحله دوم : بر حسب نیاز پروژه می توانید google analytics را فعال یا غیر فعال نمایید و سپس روی continue کلیک کنید(در صورتی که غیرفعال نمایید، مرحله 3 نخواهید داشت)

مرحله سوم : در این مرحله نیز گزینه accept را فعال نموده و سپس Create project را کلیک نمایید

پس از طی این مراحل کمی صبر نمایید تا پروژه شما ساخته شود.

پس از اتمام ساخت پروژه با تصویر زیر رو برو خواهید شد :

سپس باید وارد صفحه firebase_messaging شوید برای اینکار می توانیداز قسمت منو سمت چپ وارد قسمت All Product شوید.

پس از وارد شدن به صفحه firebase_messaging گزینه اندروید را انتخاب کرده و وارد صفحه افزودن پروژه خواهیم شد.

در مرحله اول نام پکیج پروژه خود را بنویسید.

مرحله دوم و سوم را طبق دستورات انجام دهید و سپس پروژه خود را بسازید.

حالا باید وارد پروژه فلاتر خود در اندروید استودیو یا vscode یا …. شویم و تنظیماتی را انجام دهیم:

در ابتدا باید کتابخانه firebase_messaging را در pubspec.yaml اضافه نمایید(لینک)

پس از آن نوبت به گرفتن توکن از فایربیس می رسد؛ فایربیس به هر دستگاه یک توکن اختصاص می دهد که باید آن را دریافت کرده و در سمت سرور آن را ذخیره نماییم

برای دریافت توکن به صورت زیر عمل میکنیم :

سوال: آیا این توکن ها همیشگی و ثابت می باشند؟ خیر

به 4 دلیل این توکن ها ممکن است از بین بروند:

1. در صورتی که کاربر برنامه را uninstall کند و سپس install کند

2.در صورتی که برنامه را بر روی یک دستگاه دیگر نصب نماید

3.زمانی که کاربر، data مربوز به برنامه را clear نمایید

4. در صورتی که برنامه نمونه id را پاک نماید

 پس باید این موضوع را درنظر گرفت و آن را مدیریت نمود، زیرا در صورتی که توکن نادرست باشد، عملیات مربوط به firebase_messaging درست کار نمی کند و در نتیجه کاربر هیچ پیام یا نوتیفیکیشنی دریافت نخواهد نمود.

خب، در حال حاضی میخواهیم کد بالا را اجرا نماییم، همان طور که مشاهده می کنید باید توکن کاربر را برای ما پرینت کند.

همانطور که مشاهده می کنید با تنظیمات موارد بالا، باید توکن را از فایربیس دریافت کرده باشید.

در حال حاضر ما میتوانیم با تنظیمات موارد بالا، به دستگاهی که برنامه را اجرا می کند نوتیفیکیشن ارسال کنیم؛

در سایت فایربیس وارد بخش cloud messaging می شویم و به همچین تصویری روبرو خواهیم شد

در صفحه بالا، بر روی دکمه send your first message کلیک می کنیم و در صفحه بعد می توانیم به دستگاهی که این برنامه بر روی آن قابل اجرا است، نوتیفیکیشن ارسال کنیم.

در این قسمت برنامه ای که قصد داریم برای ان نوتیفیکیشن ارسال کنیم را انتخاب میکنیم

در مرحله باید زمانی که قصد داریم نوتیفیکیشن ارسال شود را انتخاب کنیم که در حالت پیش فرض بر روی send now قرار دارد که در حال حاضر نیازی به تغییر نیست

از مراحل بعدی صرف نظر می کنیم و بر روی review کلیک کرده و publish را انتخاب میکنیم.

خب تا به اینجای کار ما توانستیم پروژه را به فایربیس متصل کرده و نوتیفیکیشن ارسال نماییم.

در مقاله بعدی در مورد نوتیفیکشن ها و اتصال سرور به فایربیس عمیق تر صحبت خواهیم کرد.