Можно ли принимать вызовы функций только из моего приложения в Firebase? - PullRequest
1 голос
/ 12 февраля 2020

Я создаю игру в Unity, в которой пользователь может вносить свой вклад в уровни, используя систему Level Creator.

Мое приложение настроено так, что мне просто нужно вызвать функцию Cloud с информацией об уровне, и он обрабатывает повторяющиеся записи и сохраняет его в Firestore. Все это прекрасно работает.

Мой вопрос, по сути, такой: могу ли я иметь свои функции только принимать вызовы из моей игры? (без регистрации моих пользователей?).

Естественно, я использую functions.https.onCall((data, context) => {}). В документации для Firebase я заметил, что они используют context.auth, чтобы проверить, аутентифицирован ли пользователь или нет. Тем не менее, я записываю это значение в консоль, и оно выглядит как undefined.

Я также запутался с этой строкой из той же ссылки:

С вызываемыми Аутентификация Firebase и токены FCM, если они доступны, автоматически включаются в запросы.

Может быть, context.auth не определено, поскольку моей игры еще нет в Google Play / Apple Store? Есть идеи?

1 Ответ

1 голос
/ 12 февраля 2020

Невозможно ограничить вызов вызываемой функции только одним приложением, и не имеет значения, опубликовано ли приложение в каких-либо магазинах. Как только вы развернете функцию, она станет доступной любому, у кого есть соединение inte rnet.

Лучшее, что вы можете сделать, - это потребовать, чтобы ваши пользователи проходили аутентификацию с Аутентификацией Firebase в вашем приложении, затем отметьте context.auth в функции, чтобы определить, должна ли она делать то, что хочет пользователь. context.auth будет неопределенным в случае отсутствия аутентификации. Если ваш код определяет, что функция не должна дальше go, вы можете вернуться рано. Но функция все еще вызывается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...