annotate gara/android/firebase-cloud-messaging/README.md @ 69:551d9fc0a2ba

Updated wrong names.
author June Park <parkjune1995@gmail.com>
date Thu, 25 Dec 2025 20:07:46 -0800
parents 829623189a57
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
47
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
1
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
2 # Bazel Firebase Cloud Messaging (FCM) example
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
3
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
4 FCM requires certain information about your app (API key, app ID, project id,
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
5 etc) to be present in the `res/values/values.xml` resource file. This example
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
6 shows how to use the tools provided in the
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
7 [bazelbuild/tools_android](https://github.com/bazelbuild/tools_android) repo to
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
8 generate the `values.xml` file from the `google-services.json` file from your
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
9 Firebase console.
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
10
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
11 ## Building the Example
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
12
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
13 To build the example:
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
14
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
15 1. Make sure the `ANDROID_HOME` environment variable is set to the absolute path
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
16 of your Android SDK.
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
17
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
18 2. Go to the Firebase console for your project, and in Settings, download
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
19 `google-service.json`, and replace the sample file in the `app` directory.
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
20
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
21 3. Run `bazel build //app` in the project.
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
22
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
23 ## Applying the Example to Your Code
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
24
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
25 To apply this example to your code:
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
26
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
27 1. Add the following to your `WORKSPACE` file:
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
28 ```python
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
29 TOOLS_ANDROID_VERSION = "0.1"
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
30 http_archive(
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
31 name = "tools_android",
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
32 strip_prefix = "tools_android-" + TOOLS_ANDROID_VERSION,
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
33 url = "https://github.com/bazelbuild/tools_android/archive/%s.tar.gz" % TOOLS_ANDROID_VERSION,
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
34 )
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
35 load("@tools_android//tools/googleservices:defs.bzl", "google_services_workspace_dependencies")
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
36 google_services_workspace_dependencies()
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
37 ```
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
38
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
39 2. Add the following to your `BUILD` file:
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
40 ```python
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
41 load("@tools_android//tools/googleservices:defs.bzl", "google_services_xml")
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
42
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
43 GOOGLE_SERVICES_XML = google_services_xml(
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
44 package_name = "com.example.myapplication",
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
45 google_services_json = "google-services.json"
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
46 )
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
47 ```
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
48
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
49 3. Add `GOOGLE_SERVICES_XML` to the `resource_files` attribute of your
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
50 `android_binary` rule. For example:
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
51 ```python
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
52 android_binary(
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
53 ...
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
54 resource_files = glob(["src/main/res/**"]) + GOOGLE_SERVICES_XML,
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
55 ...
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
56 )
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
57 ```
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
58
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
59 4. Bazel's `AndroidManifest.xml` merging logic does not merge permissions from
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
60 dependent libraries (see issue [#5411](https://github.com/bazelbuild/bazel/issues/5411)).
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
61 You may need to add the following permissions to the `AndroidManifest.xml` of
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
62 your top-level `android_binary` rule:
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
63 ```xml
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
64 <uses-permission android:name="android.permission.INTERNET" />
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
65 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
66 <uses-permission android:name="android.permission.WAKE_LOCK" />
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
67 <uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" />
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
68 ```
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
69
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
70 ## Manual Integration
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
71
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
72 It's also possible to run the Google Services values.xml generator manually and
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
73 add the results to your project:
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
74
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
75 1. Go to the Firebase console for your project, and in Settings, download
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
76 `google-service.json`.
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
77
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
78 2. From the workspace root of the `tools_android` project, run the Google
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
79 Services XML generator:
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
80 ```
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
81 bazel run //third_party/googleservices:GenerateGoogleServicesXml -- \
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
82 com.example.myapplication \
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
83 /absolute/path/to/google-services.json \
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
84 /tmp/values.xml
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
85 ```
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
86 The arguments are the package name for your app, the absolute file path to
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
87 the `google-services.json` file, and finally the file path for `values.xml`.
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
88
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
89 3. Merge the resulting `values.xml` file into your `values.xml` file (or put the
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
90 file into your `res/values` directory if you don't already have a
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
91 `values.xml` file). Alternatively, the `values.xml` file can be put into a
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
92 separate `res/values` directory and added to the `resource_files`. For the
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
93 example here, if `values.xml` is in
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
94 `app/src/main/google_services_xml/res/values/values.xml`, the `BUILD` file
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
95 would have
829623189a57 [Gara] Android commit. Bazelfied it.
MrJuneJune <me@mrjunejune.com>
parents:
diff changeset
96 `resource_files = glob(["src/main/res/**"]) + ["src/main/google_services_xml/res/values/values.xml"],`.