From 9f74fecb2fb3f71aaee71b45722672e2e03415e2 Mon Sep 17 00:00:00 2001 From: Junyoung Heo Date: Thu, 2 Nov 2017 16:14:03 +0900 Subject: [PATCH 01/33] shell script to send push notification --- FirebaseTest/app/google-services.json | 31 ++++++++------------------- FirebaseTest/fcm_test.sh | 3 +++ 2 files changed, 12 insertions(+), 22 deletions(-) create mode 100644 FirebaseTest/fcm_test.sh diff --git a/FirebaseTest/app/google-services.json b/FirebaseTest/app/google-services.json index 9bc81fc..d45d757 100644 --- a/FirebaseTest/app/google-services.json +++ b/FirebaseTest/app/google-services.json @@ -1,35 +1,27 @@ { "project_info": { - "project_number": "825238159969", - "firebase_url": "https://fir-test-30d1c.firebaseio.com", - "project_id": "fir-test-30d1c", - "storage_bucket": "fir-test-30d1c.appspot.com" + "project_number": "557059337171", + "firebase_url": "https://fir-test-a9fb9.firebaseio.com", + "project_id": "fir-test-a9fb9", + "storage_bucket": "fir-test-a9fb9.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:825238159969:android:463092ea548218e7", + "mobilesdk_app_id": "1:557059337171:android:463092ea548218e7", "android_client_info": { "package_name": "com.example.jyheo.firebasetest" } }, "oauth_client": [ { - "client_id": "825238159969-ggtdg93ig434fhodcmo9o7vk4qfv4sar.apps.googleusercontent.com", - "client_type": 1, - "android_info": { - "package_name": "com.example.jyheo.firebasetest", - "certificate_hash": "7DE57CAA54CC70DA2D38BC6D451BFBE6FDEFD0A9" - } - }, - { - "client_id": "825238159969-c5vmsqg5osshsqm1tmbnqavu5cbf9m9v.apps.googleusercontent.com", + "client_id": "557059337171-onc0agoe3vdbe0h639fbhb6ga1pvucp6.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyB0bh7z69uMcQtJf5Q53Zrjy8QDB94UMXU" + "current_key": "AIzaSyA5a8Vs-_NHUmjUL95XG_TUChAzmCmFzwk" } ], "services": { @@ -37,13 +29,8 @@ "status": 1 }, "appinvite_service": { - "status": 2, - "other_platform_oauth_client": [ - { - "client_id": "825238159969-c5vmsqg5osshsqm1tmbnqavu5cbf9m9v.apps.googleusercontent.com", - "client_type": 3 - } - ] + "status": 1, + "other_platform_oauth_client": [] }, "ads_service": { "status": 2 diff --git a/FirebaseTest/fcm_test.sh b/FirebaseTest/fcm_test.sh new file mode 100644 index 0000000..fe93fae --- /dev/null +++ b/FirebaseTest/fcm_test.sh @@ -0,0 +1,3 @@ +KEY=AAAAgbNS69M:APA91bEnJ4_P45eG6yPYrvg3wdO6_LybNE-kzsjGUVVlsaNvUZ9nQcf3J-cm908H1eirmShT_YX-8a2_4XsuiaHoE3AbuWRVAxPXSJKKL1oBQsXWkMDFcMMhssUm23Z6U7iptNxObmrNRu5VjhCLv7oK2SPNG3xMxw +TOKEN=ePLprMzS__c:APA91bEXPouC6CPXaXzjKF0GCvXrAADP7PVAeG9ENwFCEcD3rSxgZ8Xwx4xVV2YktgHAqGw7u155ItP_q2vpi7cwU7AlKqol8HCUzppEKQYPF2y6l3e6FvJm7_ooTokG8Tr3AieiNfVJ +curl --header "Authorization: key=$KEY" --header Content-Type:"application/json" https://fcm.googleapis.com/fcm/send -d "{ \"notification\": { \"title\": \"title here\", \"text\": \"message body here\" }, \"to\" : \"$TOKEN\"}" From 9fc4d21aa2d852bb1b058c3d6a8aa7f773afd376 Mon Sep 17 00:00:00 2001 From: Junyoung Heo Date: Tue, 7 Nov 2017 23:51:48 +0900 Subject: [PATCH 02/33] android studio 3.0 and new sdk --- FirebaseTest/app/build.gradle | 3 +- FirebaseTest/app/google-services.json | 45 ++++++++++++++++--- .../jyheo/firebasetest/MainActivity.java | 2 +- FirebaseTest/build.gradle | 4 +- .../gradle/wrapper/gradle-wrapper.properties | 4 +- 5 files changed, 45 insertions(+), 13 deletions(-) diff --git a/FirebaseTest/app/build.gradle b/FirebaseTest/app/build.gradle index 5298aad..4cf1ae0 100644 --- a/FirebaseTest/app/build.gradle +++ b/FirebaseTest/app/build.gradle @@ -2,7 +2,7 @@ apply plugin: 'com.android.application' android { compileSdkVersion 25 - buildToolsVersion "25.0.3" + buildToolsVersion "27.0.1" defaultConfig { applicationId "com.example.jyheo.firebasetest" @@ -36,4 +36,5 @@ dependencies { + apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/FirebaseTest/app/google-services.json b/FirebaseTest/app/google-services.json index d45d757..cbdb2da 100644 --- a/FirebaseTest/app/google-services.json +++ b/FirebaseTest/app/google-services.json @@ -1,27 +1,58 @@ { "project_info": { - "project_number": "557059337171", - "firebase_url": "https://fir-test-a9fb9.firebaseio.com", - "project_id": "fir-test-a9fb9", - "storage_bucket": "fir-test-a9fb9.appspot.com" + "project_number": "1071702779205", + "firebase_url": "https://myfirebase-332e8.firebaseio.com", + "project_id": "myfirebase-332e8", + "storage_bucket": "myfirebase-332e8.appspot.com" }, "client": [ { "client_info": { - "mobilesdk_app_id": "1:557059337171:android:463092ea548218e7", + "mobilesdk_app_id": "1:1071702779205:android:1bcf6f7ce6e31abc", + "android_client_info": { + "package_name": "com.example.jyheo.pushnotifcm" + } + }, + "oauth_client": [ + { + "client_id": "1071702779205-42q75uj3tigqbpdk9ighvc7mj7o7vn0c.apps.googleusercontent.com", + "client_type": 3 + } + ], + "api_key": [ + { + "current_key": "AIzaSyCj_vN0yCA0yF96eTJZEeqxyEdklsqeObs" + } + ], + "services": { + "analytics_service": { + "status": 1 + }, + "appinvite_service": { + "status": 1, + "other_platform_oauth_client": [] + }, + "ads_service": { + "status": 2 + } + } + }, + { + "client_info": { + "mobilesdk_app_id": "1:1071702779205:android:463092ea548218e7", "android_client_info": { "package_name": "com.example.jyheo.firebasetest" } }, "oauth_client": [ { - "client_id": "557059337171-onc0agoe3vdbe0h639fbhb6ga1pvucp6.apps.googleusercontent.com", + "client_id": "1071702779205-42q75uj3tigqbpdk9ighvc7mj7o7vn0c.apps.googleusercontent.com", "client_type": 3 } ], "api_key": [ { - "current_key": "AIzaSyA5a8Vs-_NHUmjUL95XG_TUChAzmCmFzwk" + "current_key": "AIzaSyCj_vN0yCA0yF96eTJZEeqxyEdklsqeObs" } ], "services": { diff --git a/FirebaseTest/app/src/main/java/com/example/jyheo/firebasetest/MainActivity.java b/FirebaseTest/app/src/main/java/com/example/jyheo/firebasetest/MainActivity.java index 9d82063..b26d3be 100644 --- a/FirebaseTest/app/src/main/java/com/example/jyheo/firebasetest/MainActivity.java +++ b/FirebaseTest/app/src/main/java/com/example/jyheo/firebasetest/MainActivity.java @@ -61,7 +61,7 @@ protected void onCreate(Bundle savedInstanceState) { private void displayImage() { // Create a storage reference from our app - StorageReference storageRef = mFirebaseStorage.getReferenceFromUrl("gs://fir-test-30d1c.appspot.com/스크린샷, 2016-11-26 00-41-42.png"); + StorageReference storageRef = mFirebaseStorage.getReferenceFromUrl("gs://myfirebase-332e8.appspot.com/3.jpg"); storageRef.getBytes(Long.MAX_VALUE).addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(byte[] bytes) { diff --git a/FirebaseTest/build.gradle b/FirebaseTest/build.gradle index fc64aa9..38adca9 100644 --- a/FirebaseTest/build.gradle +++ b/FirebaseTest/build.gradle @@ -5,10 +5,10 @@ buildscript { jcenter() } dependencies { - classpath 'com.android.tools.build:gradle:2.3.3' + classpath 'com.android.tools.build:gradle:3.0.0' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files - classpath 'com.google.gms:google-services:3.0.0' + classpath 'com.google.gms:google-services:3.1.0' } } diff --git a/FirebaseTest/gradle/wrapper/gradle-wrapper.properties b/FirebaseTest/gradle/wrapper/gradle-wrapper.properties index fadd636..1e3c800 100644 --- a/FirebaseTest/gradle/wrapper/gradle-wrapper.properties +++ b/FirebaseTest/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ -#Mon Oct 23 15:28:39 KST 2017 +#Tue Nov 07 22:46:59 KST 2017 distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip From c374d2a0e37c16bec2bd81b037593b2fdab69697 Mon Sep 17 00:00:00 2001 From: Junyoung Heo Date: Thu, 16 Nov 2017 19:14:24 +0900 Subject: [PATCH 03/33] realtimedb --- FirebaseTest/app/build.gradle | 4 ++ FirebaseTest/app/google-services.json | 8 ++++ .../jyheo/firebasetest/MainActivity.java | 42 ++++++++++++++++++ .../app/src/main/res/layout/activity_main.xml | 43 ++++++++++--------- 4 files changed, 76 insertions(+), 21 deletions(-) diff --git a/FirebaseTest/app/build.gradle b/FirebaseTest/app/build.gradle index 4cf1ae0..246b312 100644 --- a/FirebaseTest/app/build.gradle +++ b/FirebaseTest/app/build.gradle @@ -20,6 +20,7 @@ android { } dependencies { + implementation 'com.google.firebase:firebase-database:9.6.1' compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support:design:25.3.1' @@ -37,4 +38,7 @@ dependencies { + + + apply plugin: 'com.google.gms.google-services' \ No newline at end of file diff --git a/FirebaseTest/app/google-services.json b/FirebaseTest/app/google-services.json index cbdb2da..baec476 100644 --- a/FirebaseTest/app/google-services.json +++ b/FirebaseTest/app/google-services.json @@ -45,6 +45,14 @@ } }, "oauth_client": [ + { + "client_id": "1071702779205-u37f78fj2gu4elqtr414u4rjrrcq25pp.apps.googleusercontent.com", + "client_type": 1, + "android_info": { + "package_name": "com.example.jyheo.firebasetest", + "certificate_hash": "e7bfc9d45bb55566f80984888801be2f4afa650f" + } + }, { "client_id": "1071702779205-42q75uj3tigqbpdk9ighvc7mj7o7vn0c.apps.googleusercontent.com", "client_type": 3 diff --git a/FirebaseTest/app/src/main/java/com/example/jyheo/firebasetest/MainActivity.java b/FirebaseTest/app/src/main/java/com/example/jyheo/firebasetest/MainActivity.java index b26d3be..9f0337e 100644 --- a/FirebaseTest/app/src/main/java/com/example/jyheo/firebasetest/MainActivity.java +++ b/FirebaseTest/app/src/main/java/com/example/jyheo/firebasetest/MainActivity.java @@ -7,8 +7,10 @@ import android.os.Bundle; import android.util.Log; import android.view.View; +import android.widget.EditText; import android.widget.ImageView; import android.widget.TextView; +import android.widget.Toast; import com.google.android.gms.tasks.OnCompleteListener; import com.google.android.gms.tasks.OnFailureListener; @@ -16,6 +18,11 @@ import com.google.android.gms.tasks.Task; import com.google.firebase.auth.FirebaseAuth; import com.google.firebase.auth.FirebaseUser; +import com.google.firebase.database.DataSnapshot; +import com.google.firebase.database.DatabaseError; +import com.google.firebase.database.DatabaseReference; +import com.google.firebase.database.FirebaseDatabase; +import com.google.firebase.database.ValueEventListener; import com.google.firebase.remoteconfig.FirebaseRemoteConfig; import com.google.firebase.remoteconfig.FirebaseRemoteConfigSettings; import com.google.firebase.storage.FirebaseStorage; @@ -57,6 +64,8 @@ protected void onCreate(Bundle savedInstanceState) { displayConfig(); displayImage(); + + addReadEventListener(); } private void displayImage() { @@ -112,6 +121,39 @@ public void onComplete(@NonNull Task task) { }); } + public void onWriteData(View v) { + String db_value = ((EditText)findViewById(R.id.db_value)).getText().toString(); + FirebaseDatabase database = FirebaseDatabase.getInstance(); + DatabaseReference myRef = database.getReference("message"); + + myRef.setValue(db_value); + } + + public void addReadEventListener() { + final EditText db_value = (EditText)findViewById(R.id.db_value); + FirebaseDatabase database = FirebaseDatabase.getInstance(); + DatabaseReference myRef = database.getReference("message"); + + // Read from the database + myRef.addValueEventListener(new ValueEventListener() { + @Override + public void onDataChange(DataSnapshot dataSnapshot) { + // This method is called once with the initial value and again + // whenever data at this location is updated. + String value = dataSnapshot.getValue(String.class); + db_value.setText(value); + Toast.makeText(getApplicationContext(), "Successed to read value.", Toast.LENGTH_LONG).show(); + } + + @Override + public void onCancelled(DatabaseError error) { + // Failed to read value + Log.w(TAG, "Failed to read value.", error.toException()); + Toast.makeText(getApplicationContext(), "Failed to read value.", Toast.LENGTH_LONG).show(); + } + }); + } + public void onLogoutButton(View v) { mAuth.signOut(); finish(); diff --git a/FirebaseTest/app/src/main/res/layout/activity_main.xml b/FirebaseTest/app/src/main/res/layout/activity_main.xml index 68ebde8..a7aedc7 100644 --- a/FirebaseTest/app/src/main/res/layout/activity_main.xml +++ b/FirebaseTest/app/src/main/res/layout/activity_main.xml @@ -1,5 +1,5 @@ - + android:id="@+id/textView_cheat"/> + +