Просмотр исходного кода

Firebase Cloud Messageing server start

Axel Nordh 5 лет назад
Родитель
Сommit
559bdfd3e9

+ 0 - 23
Assets/FirebaseMessenger.cs

@@ -1,23 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using Firebase;
-using UnityEngine;
-
-public class FirebaseMessenger : MonoBehaviour
-{
-    // Start is called before the first frame update
-    void Start()
-    {
-        Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
-        Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
-    }
-
-    public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) {
-        Debug.Log("Received Registration token: " + token.Token);
-    }
-
-    public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
-        Debug.Log("Received New message from: " + e.Message.From);
-    }
-
-}

+ 0 - 11
Assets/FirebaseMessenger.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: 6dba90c1b32c37c43b0cb61d9dd0280c
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 22
Assets/Scripts/Firebase/FirebaseReceiver.cs

@@ -1,22 +0,0 @@
-using System.Collections;
-using System.Collections.Generic;
-using UnityEngine;
-
-public class FirebaseReceiver : MonoBehaviour
-{
-    /*
-    // Start is called before the first frame update
-    public void Start() {
-        Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
-        Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived; 
-    }
-
-    public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) {
-        UnityEngine.Debug.Log("Received Registration Token: " + token.Token);
-    }
-
-    public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
-        UnityEngine.Debug.Log("Received a new message from: " + e.Message.From);
-    }
-    */
-}

+ 0 - 11
Assets/Scripts/Firebase/FirebaseReceiver.cs.meta

@@ -1,11 +0,0 @@
-fileFormatVersion: 2
-guid: f703286e51ee1c4439ae1f8e31cef59b
-MonoImporter:
-  externalObjects: {}
-  serializedVersion: 2
-  defaultReferences: []
-  executionOrder: 0
-  icon: {instanceID: 0}
-  userData: 
-  assetBundleName: 
-  assetBundleVariant: 

+ 0 - 17
Assets/Scripts/GameManagerScript.cs

@@ -1,7 +1,6 @@
 using System;
 using System.Collections;
 using System.Collections.Generic;
-using Firebase;
 using UnityEngine;
 using UnityEngine.UI;
 
@@ -33,25 +32,9 @@ public class GameManagerScript : MonoBehaviour {
     [SerializeField] float movementSpeed = 1.0f;
 
     List<KeyValuePair<string, int>> players;
-    private FirebaseApp app;
 
     // Start is called before the first frame update
     void Start() {
-        Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
-        var dependencyStatus = task.Result;
-        if (dependencyStatus == Firebase.DependencyStatus.Available) {
-            // Create and hold a reference to your FirebaseApp,
-            // where app is a Firebase.FirebaseApp property of your application class.
-            app = Firebase.FirebaseApp.DefaultInstance;
-
-            // Set a flag here to indicate whether Firebase is ready to use by your app.
-        } else {
-            UnityEngine.Debug.LogError(System.String.Format(
-            "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
-            // Firebase Unity SDK is not safe to use here.
-        }
-        });
-        
         GameId = PlayerPrefs.GetInt("GameId");
         GameMode = PlayerPrefs.GetString("GameMode");
         QuestionTimer = PlayerPrefs.GetInt("QuestionTimer");

+ 13 - 7
Assets/Scripts/Login/Login.cs

@@ -9,6 +9,7 @@ using System;
 using System.Security.Cryptography;
 using System.Text;
 using UnityEngine.Events;
+using Firebase;
 
 public class Login : MonoBehaviour {
 
@@ -29,6 +30,8 @@ public class Login : MonoBehaviour {
     private Color errorColor;
     private EventSystem system;
 
+    [SerializeField] GameObject firebaseController;
+
     [Serializable]
     public class User {
         public string userId;
@@ -37,7 +40,6 @@ public class Login : MonoBehaviour {
     }
 
     private void Start() {
-        // CheckFirebaseGoogleDependencies();
         if (Database.Instance.IsKeepSignedIn()) {
             SceneManager.LoadScene("MainMenu");
         }
@@ -107,15 +109,19 @@ public class Login : MonoBehaviour {
         errorText.color = errorColor;
     }
 
+
     IEnumerator loginCall() {
-        string postUrl = loginUrl + "name=" + UnityWebRequest.EscapeURL(Username);
+        string postUrl = loginUrl + "name=" + UnityWebRequest.EscapeURL(Username)+"&t=";
+        StringBuilder sb = new StringBuilder(postUrl);
+
+        FirebaseStart fs = firebaseController.GetComponent<FirebaseStart>();
 
-        string token = FirebaseStart.MyToken;
-        if (token.Length > 0) {
-            StringBuilder sb = new StringBuilder(loginUrl);
-            sb.Append("&t=" + token);
+        if (fs.MyToken != null && fs.MyToken.Length > 0) {
+            sb.Append(UnityWebRequest.EscapeURL(fs.MyToken));
             postUrl = sb.ToString();
-        }
+        } else {
+            sb.Append("");
+        } 
         UnityWebRequest www = UnityWebRequest.Get(postUrl);
         yield return www.SendWebRequest();
 

+ 0 - 1
Assets/Scripts/Login/Register.cs

@@ -30,7 +30,6 @@ public class Register : MonoBehaviour {
 
     // Start is called before the first frame update
     void Start() {
-        // CheckFirebaseGoogleDependencies();
         registerButton.onClick.AddListener(RegisterAction);
         system = EventSystem.current;
         errorColor = errorText.color;

+ 9 - 20
Assets/Scripts/NewGameScene/FirebaseStart.cs

@@ -6,39 +6,28 @@ using UnityEngine;
 
 public class FirebaseStart : MonoBehaviour
 {
-
-    public static string MyToken;
     private FirebaseApp app;
+    private string myToken;
+
+    public string MyToken { get => myToken; set => myToken = value; }
 
     // Start is called before the first frame update
     void Start()
     {
-        Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task => {
-        var dependencyStatus = task.Result;
-        FirebaseAnalytics.SetAnalyticsCollectionEnabled(true);
-        if (dependencyStatus == Firebase.DependencyStatus.Available) {
-            // Create and hold a reference to your FirebaseApp,
-            // where app is a Firebase.FirebaseApp property of your application class.
-            app = Firebase.FirebaseApp.DefaultInstance;
-
-            // Set a flag here to indicate whether Firebase is ready to use by your app.
-        } else {
-            UnityEngine.Debug.LogError(System.String.Format(
-            "Could not resolve all Firebase dependencies: {0}", dependencyStatus));
-            // Firebase Unity SDK is not safe to use here.
-        }
-        });
         Firebase.Messaging.FirebaseMessaging.TokenReceived += OnTokenReceived;
-        Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived; 
+        Firebase.Messaging.FirebaseMessaging.MessageReceived += OnMessageReceived;
     }
 
     public void OnTokenReceived(object sender, Firebase.Messaging.TokenReceivedEventArgs token) {
-        MyToken = token.Token;
+        if (!token.Token.Equals("")) {
+            MyToken = token.Token;
+            Debug.Log("Setting token to " + MyToken );
+        }
         Debug.Log("Received Registration token: " + token.Token);
     }
 
     public void OnMessageReceived(object sender, Firebase.Messaging.MessageReceivedEventArgs e) {
         Debug.Log("Received New message from: " + e.Message.From);
-    }
 
 }
+}

+ 1 - 1
Assets/Scripts/NewGameScene/FirebaseStart.cs.meta

@@ -4,7 +4,7 @@ MonoImporter:
   externalObjects: {}
   serializedVersion: 2
   defaultReferences: []
-  executionOrder: 0
+  executionOrder: -200
   icon: {instanceID: 0}
   userData: 
   assetBundleName: 

BIN
Assets/narKampenLocal.db


+ 54 - 0
dbFiles/FCMMessageing.php

@@ -0,0 +1,54 @@
+<?php
+
+// Send notifications One device
+
+// Hämta token från sql användaren
+$token = "eMvkzPwkTheSeFLFAE5fho:APA91bE-pb5_0xoMn_Bza6-HrgpI5ufKPZ7zhF4NM_leYdfgYTk4MZJdfpfiKDkijUuQAiK7iaT7rXJucF20uh1GvmgjiomiuQehnDHcjUkGjaSvkQtVfj_s0AtLSPjIJz8EQ5Aujkfk";
+$message = "TEST MEDDELANDE FRÅN SERVERN";
+$url = "https://fcm.googleapis.com/fcm/send";
+
+$fields = array(
+	"registration_id" => array(
+		$token
+	),
+	"data" => array("message" => $message));
+	
+$fields = json_encode($fields);
+
+$headers = array(
+            'Authorization: key=' . "108102546370",
+            'Content-Type: application/json'
+			)
+
+$post = [
+	"message" => array("notification" => array(
+		"title" => "FCM Message",
+		"body" => "This is an FCM Message")
+	"token" => $token
+	)
+];
+
+$curl = curl_init()
+
+curl_setopt($curl, CURLOPT_URL, $url);
+curl_setopt($curl, CURLOPT_POST, true);
+curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
+curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+curl_setopt($curl, CURL_POSTFIELDS, $fields);
+
+$response = curl_exec($curl);
+
+var_dump($response);
+
+curl_close($curl);
+
+/*
+curl -X POST -H "Authorization: Bearer ya29.ElqKBGN2Ri_Uz...HnS_uNreA" -H "Content-Type: application/json" -d '{
+"message":{
+   "notification":{
+     "title":"FCM Message",
+     "body":"This is an FCM Message"
+   },
+   "token":"bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
+}}' https://fcm.googleapis.com/v1/projects/myproject-b5ae1/messages:send
+*/

+ 1 - 1
dbFiles/Login.php

@@ -26,7 +26,7 @@
 		$returnArray = array('userId' => $data['id'], 'pass' => $data['password'], 'salt' => $data['salt']);
 
 		$messageToken = $_GET['t'];
-		$updateTokenSql = "UPDATE users SET messageToken = '$messageToken' WHERE id = " - $data['id'];
+		$updateTokenSql = "UPDATE users SET messageToken = '$messageToken' WHERE id = " . $data['id'];
 		$conn->query($updateTokenSql);
 
 		echo json_encode($returnArray);