رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ارسال پوش نوتیفیکیشن با استفاده از سرویس فایربیس
#1
سلام دوستان  Heart امیداوارم حال همگی خوب باشه ... و سال نوتون مبارک ... 
ابن بار میخوام در رابطه با سرویس فایربیس گوگل براتون بگم . تا آخر پست با ما همراه باشید که براتون نحوه ی ارسال پوش نوتیفیکیشن ساده برای کاربراتون را از طریق سرویس فایربیس بگم .
البته بگم که این سرویس برای ما تحریم هست. ( به هر دلیلی حالا ) شما باید از VPN استفاده کنید. پس دقت کنید خواهشا.
و باید بگم که فایربیس کلی سرویس داره . که در اینجا فقط پوش نوتیفیکیشن رو براتون میگم. برای اطلاعات بیشتر به این لینک رجوع کنید !
خب قبل از هر کاری اول باید توی سایت فایربیس برای خودتون یک اکانت بسازید. 
ساختن اکانت در این سایت رایگان هست ولی جوری که گفتم نیاز به VPN داره ! پس به این  لینک مراجعه کنید و یک اکانت برای خودتون بسازید. 
مراحلش ساده اس ولی برای راهنمایی به این لینک ویدیو در یوتیوب مراجعه کنید.
پاسخ
تشکر شده توسط:
#2
خب گام به گام با من همراه باشید که بعد گذراندن چند گام ساده , بتونیم برای کاربرامون پوش نوتیفیکیشن رو ارسال کنیم.

گام اول : ساخت اکانت در سایت فایربیس
گام دوم : ساختن یک پروژه در سایت فایربیس به این ترتیب  که   بعد از ساخت اکانت با توجه به تصویر " GET STARTED " را انتخاب کنید .



[عکس: images?q=tbn:ANd9GcQU9Crb2Ug4SZ0VV4DbwBq...BFw7VlhFMn]


گام سوم : بعد از این مرحله تصویر زیر بر " CREATE NEW PROJECT "  را انتخاب کنید.

[عکس: images?q=tbn:ANd9GcQGUxB7G6gKoBmjFwzi-3W...Pt62PpbXZA]




گام چهارم : بعد از گام سوم برای شما پنجره ی " Add a Project "  باز خواهد شد که نامی برای پروژه ی خود و نیز کشور را انتخاب کنید.

[عکس: images?q=tbn:ANd9GcTlfyhAsMfJMhNrG00575V...lSTS7qsYcw]



گام پنجم : در پنجره ی بعدی که باز می شود شما " Add Firebase to your Android app " را انتخاب کنید.

[عکس: images?q=tbn:ANd9GcSyruZq_WoUMi31YRNuUbL...2jdu3KNxri]



گام ششم : مرحله ی مهمی هستش. در اینجا شما با 3 کادر رو به رو هستید . که باید در کادر اول به دقت پکیج نیم خود را از اندروید استودیو اینجا بنویسید.
در کادر دوم نامی را برای اپ خود انتخاب کنید.
و اما در کادر سوم که " Debug signing certificate SHA-1 " هست را طبق این لینک به دست آورید و در اینجا قرار بدید.


[عکس: images?q=tbn:ANd9GcR3khtWRDdMIvmPuAVD6H_...U-SNwq8bfQ]


گام هفتم : بعد از این مرحله , پنجره ی هدایت شما و دانلود فایل google-service.json و هم چنین طریقه ی استفاده از آن را به شما گفته...
شما این فایل رو دانلود کنید با کلیک روی اون دکمه و اون رو بردارید و مانند این لینک آن را در پروژه ی اندروید استودیو قرار بدید.


[عکس: images?q=tbn:ANd9GcTKiXsTUcf9hYZPna7n0Sw...453N97Gkjm]
پاسخ
تشکر شده توسط: mazda
#3
گام هشتم : افزودن لایبرری ها و پلاگین و ... به پروژه .
1 ) ابتدا فایل build.gradle قسمت Project:... (قسمت Module:app نیست فایل بالاتر هست) را باز کنید و این خط کد را در بلاک dependencies به آن اضافه کنید.
1
classpath 'com.google.gms:google-services:3.2.0'


یعنی اون قسمت فایل باید اینگونه باشد :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
buildscript {
    
   repositories {
       google()
       jcenter()
   }
   dependencies {
       classpath 'com.android.tools.build:gradle:3.0.1'
       classpath 'com.google.gms:google-services:3.2.0'
        
 
       // NOTE: Do not place your application dependencies here; they belong
       // in the individual module build.gradle files
   }
}

2 ) خب بعد از آن به فایل buil.gradle قسمت (Module:app)
این لایبرری ها و این پلاگین را اضافه کنید: 
1
2
3
4
5
compile 'com.google.firebase:firebase-core:11.8.0'
compile 'com.google.firebase:firebase-messaging:11.8.0'
}
 
apply plugin: 'com.google.gms.google-services'

** پلاگین را باید بعد از بستن بلاک بنویسید**
 


گام نهم : ساخت کلاسی به نام MyFirebaseInstanceIdService که این کلاس از  FirebaseInstanceIdService مشتق شده و این کد ها رو در این کلاس قرار بدید: 


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
package firebaseConfig;
 
import android.annotation.SuppressLint;
import android.util.Log;
 
import com.google.firebase.iid.FirebaseInstanceId;
import com.google.firebase.iid.FirebaseInstanceIdService;
 
/**
* Created by sanaebadi on 3/19/18.
*/
 
@SuppressLint("Registered")
public class MyFirebaseInstanceIdService extends FirebaseInstanceIdService {
 private static final String TAG = "MyFirebaseInstanceIdSer";
 
 @Override
 public void onTokenRefresh() {
 
   //Get Updated Token
 
   String refreshedToken = FirebaseInstanceId.getInstance().getToken();
   Log.d(TAG, "onTokenRefresh: " + refreshedToken);
 
   //You Can Save The Token Into Third Party Server To Do AnyThing You Want
 
 
 }
}

 
گام دهم : ساخت کلاس دیگر به نام MyFirebaseMessagingService که این کلاس از FirebaseMessagingService مشتق شده و کد های این کلاس نیز به این صورت هستن :

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
package firebaseConfig;
 
import android.annotation.SuppressLint;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.media.RingtoneManager;
import android.net.Uri;
import android.support.v4.app.NotificationCompat;
import android.util.Log;
 
import com.google.firebase.messaging.FirebaseMessagingService;
import com.google.firebase.messaging.RemoteMessage;
 
import activity.MainActivity;
import ir.sanaebadi.retrofiteWithFirebase.R;
 
/**
* Created by sanaebadi on 3/19/18.
*/
 
@SuppressLint("Registered")
public class MyFirebaseMessagingService extends FirebaseMessagingService {
 private static final String TAG = "MyFirebaseMessagingServ";
 
 @Override
 public void onMessageReceived(RemoteMessage remoteMessage) {
   Log.d(TAG, "onMessageReceived: " + remoteMessage.getFrom());
 
   //Check If The Message Contains Data
 
   if (remoteMessage.getData().size() > 0) {
     Log.d(TAG, "onMessageData: " + remoteMessage.getData());
   }
 
   //Check If The Message Contains Notification
   if (remoteMessage.getNotification() != null) {
     Log.d(TAG, "onMessageNotification: " + remoteMessage.getNotification().getBody());
 
     sendNotification(remoteMessage.getNotification().getBody());
   }
 
 }
 
 /**
  * Display The Notification
  *
  * @param body
  */
 private void sendNotification(String body) {
 
   Intent intent = new Intent(this, MainActivity.class);
   intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
 
   PendingIntent pendingIntent = PendingIntent.getActivity(this, 0, intent,
     PendingIntent.FLAG_ONE_SHOT);
 
   //Set Sound Of Notification
 
   Uri notificationSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
 
   NotificationCompat.Builder builder = new NotificationCompat.Builder(this)
     .setSmallIcon(R.drawable.firebase)
     .setContentTitle("Firebase Cloud Messaging")
     .setContentText(body)
     .setSound(notificationSound)
     .setContentIntent(pendingIntent);
 
 
   NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
   assert notificationManager != null;
   notificationManager.notify(0, builder.build());
 }
}

** کدها با کامنت همراه هستند نیازی به توضیح اضافه نیست **ّ




گام یازدهم : آپدیت منیفست هست که باید بلاک Service را ایجاد کنیم و این دو کلاس را به آن معرفی کنیم . مانند کد زیر :

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?xml version="1.0" encoding="utf-8"?>
         package="ir.sanaebadi.retrofiteWithFirebase">
 
   <uses-permission android:name="android.permission.INTERNET"/>
   <application
       android:name="app.AppController"
       android:allowBackup="true"
       android:icon="@mipmap/ic_launcher"
       android:label="@string/app_name"
       android:roundIcon="@mipmap/ic_launcher_round"
       android:supportsRtl="true"
       android:theme="@style/AppTheme">
       <activity android:name="activity.MainActivity">
           <intent-filter>
               <action android:name="android.intent.action.MAIN"/>
 
               <category android:name="android.intent.category.LAUNCHER"/>
           </intent-filter>
       </activity>
 
       <activity
           android:name="activity.DetailsActivity"
           android:theme="@style/DetailsTheme"/>
 
       <service android:name="firebaseConfig.MyFirebaseMessagingService">
           <intent-filter>
 
               <action android:name="com.google.firebase.MESSAGING_EVENT"/>
 
           </intent-filter>
 
       </service>
 
       <service android:name="firebaseConfig.MyFirebaseInstanceIdService">
           <intent-filter>
 
               <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/>
 
           </intent-filter>
 
       </service>
   </application>
 
</manifest>


 گام دوازدهم و آخر : برگشت به اکانت خود در فایربیس و انتخاب Notifications  از منوی آپشن های فایربیس و اکانت خود. 
و New Message را انتخاب کنید و به کاربران خود پیام بفرستید.

[عکس: firebase-send-notification-3.png]

و SEND MESSAGE را انتخاب کنید و تمام !
خب تمامی کدهاش این بود . شما می تونید این کد ها که در واقع دوتا کلاس هستن را در پروژه های خود اضافه کنید و استفاده کنید.
ولی باید پیش نیاز هاشو که براتون گفتم رو اوکی کنید.
من یه پروژه ی کامل با استفاده از رتروفیت و فایربیس ساختم و اون را در گیت هابم گذاشتم. اینم لینک پروژه ی من در گیت هاب !
امیدوارم واستون مفید باشه  Heart
و ممنون بابت همراهی شما با این پست   Smile 
موفق باشید Cool
پاسخ
تشکر شده توسط: mazda
#4
با تشکر از توضیحات شما
اگه از قسمت Tools و بعد Firebase داخل اندروید استودیو بیایم و با یک جیمیل کاکنت بشیم به فایربیس ، نیازی به انجام مراحی دوم تا ششم نیست درسته؟
(ضمن اینکه باید حتما وی پی ان روشن باشه بعد ، بجای گامهای 1 تا 6 ، مراحلی که داخل اندروید استودیو و بعد وقتی سایت فایربیس رو باز میکنه باید طی کنیم فقط)

سوال دوم:
گام نهم دهو و یازدهم باری چی هستش؟ بدون اضافه کردن این کلاسها میشه نوتیفیکیشن ارسال کرد
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: