While this is not possible, but as mentioned in another answer, you can run functions using an HTTP request from Android. If you do, it is important to protect your functions with an authentication mechanism. Here is a basic example:
'use strict'; var functions = require('firebase-functions'); const admin = require('firebase-admin'); admin.initializeApp(functions.config().firebase); exports.helloWorld = functions.https.onRequest((request, response) => { console.log('helloWorld called'); if (!request.headers.authorization) { console.error('No Firebase ID token was passed'); response.status(403).send('Unauthorized'); return; } admin.auth().verifyIdToken(request.headers.authorization).then(decodedIdToken => { console.log('ID Token correctly decoded', decodedIdToken); request.user = decodedIdToken; response.send(request.body.name +', Hello from Firebase!'); }).catch(error => { console.error('Error while verifying Firebase ID token:', error); response.status(403).send('Unauthorized'); }); });
To get the token in Android, you must use this one and then add it to your request as follows:
connection = (HttpsURLConnection) url.openConnection(); ... connection.setRequestProperty("Authorization", token);
Sir codesalot
source share