Я совершенно не уверен, что это возможно, если один пользователь попытается получить всех пользователей, если только вы не используете firebase-admin. Хотя у меня есть идея, как это сделать, если вы пытаетесь получить список добавленных пользователей, являющихся другими пользователями. Итак, попробуйте сохранить другой список, когда новый пользователь входит в систему, добавьте данные пользователя в новый узел, такой как userList. И когда они вам понадобятся, звоните в этот узел. И в случае, если вы используете firebase-admin
admin.auth().listUsers(1000, nextPageToken)
.then(function(listUsersResult) {
выдаст список. Вот ссылка. https://firebase.google.com/docs/auth/admin/manage-users#list_all_users
Рассматривали ли вы использование макросов M4? Я думаю, что они доступны на большинстве платформ, поэтому это не должно быть ограничением.
Это невозможно, потому что макрос выполняется только один раз.
Это не означает, что вы не можете использовать другие макросы в своем макросе, но вы не можете использовать
#define TEST #define HALLO 33
int x = TEST;
и ожидать, что x будет 33 после этого! Вы бы получили синтаксическую ошибку из-за попытки
int x = #define HALLO 33;
Или, может быть, компилятор уже жалуется на #define в #define.
Попробуйте #define make_macro (name, ...) name # #_fn (name ## _ info, __VA_ARGS __)
.
Используйте так:
make_macro(name1)
make_macro(name2,1)
, и это сгенерирует
name1_fn(name1_info)
name2_fn(name2_info,1)
Как все уже говорили, вы не можете делать именно то, что просите.
Вы могли бы сделать что-то подобное, заставив препроцессор C запускаться дважды, например, с помощью такого правила в make-файле:
.c.pp:
$(CPP) $< -o $@
Затем дайте вашему файлу расширение test.pp. Makefile запустит его один раз, чтобы сгенерировать файл .c, а затем обычный запуск файла .c запустит его второй раз.
Лично Я бы предпочел написать внешний сценарий на Perl или что-то еще, чтобы сгенерировать для меня код C; это немного чище, чем играть в игры с препроцессором C. Это зависит от того, о каком количестве кода мы говорим.