Based on <https://developer.android.com/guide/topics/manifest/service-element>

Regarding the meaning of `android:exported`

> 
> Whether or not components of other applications can invoke the service
> or interact with it — "true" if they can, and "false" if not. When the
> value is "false", only components of the same application or
> applications with the same user ID can start the service or bind to
> it.
> 
> 
> 

When I look at the code <https://firebase.google.com/docs/cloud-messaging/android/client>

```
<service
    android:name=".java.MyFirebaseMessagingService"
    android:exported="false">
    <intent-filter>
        <action android:name="com.google.firebase.MESSAGING_EVENT" />
    </intent-filter>
</service>

```

I thought when we are receiving push notification, it is the **external Android system** (considered as "other app") which invokes our app code. If that is so, why `android:exported` is false in the above case?

Isn't it should be true, if it is an external app which invokes our app code?

Thanks.