Вывод запроса в файл дает ошибку доступа запрещен

да, я думаю, что это связано с асинхронной природой дизайна Firebase. Так что signInWithEmail ... работает, но не сразу отражает изменение объекта currentUser. Вместо этого используйте событие onAuthStateChanged для создания любого кода, связанного с currentUser. Процесс будет выглядеть следующим образом:

  1. Зарегистрировать событие onAuthStateChanged, и внутри него обнаружить для currentUser == null, это событие всегда будет вызываться при первом определении с нулевым пользователем, поэтому при установке если внутри, вы можете определить, когда вы имеете дело с реальным входом.

  2. Добавьте функцию входа в систему, но не выполняйте никаких действий при обратном вызове с помощью текущего пользователя, вместо этого переместите соответствующий код в onAuthStageChanged.

Кроме того, не на 100% уверен, что вам нужно обернуть событие внутри модуля и экспортировать его, или что вы должны. При выполнении веб-приложений каждая страница должна быть независимой от состояния и независимой, поэтому каждая страница должна иметь свой собственный код сценария для проверки событий аутентификации и делать все, что подходит.

Я так делаю, и до сих пор работал все время. Удачи!

14
задан 7ochem 23 January 2017 в 13:25
поделиться

1 ответ

Outfile является своим собственным разрешением в mysql.

Если у Вас есть ВСЕ, что это включено.

Но если Вы просто будете иметь безопасный набор, такой как ВЫБОР, ВСТАВИТЕ, ОБНОВИТЕ, УДАЛИТЕ, ОТБРОСИТЕ, СОЗДАДИТЕ, но не OUTFILE, то "в outfile" не будет работать в запросах.

Причина этого состоит в том, что доступ к файлам из MySQL, даже в целях записи, имеет определенные угрозы безопасности, потому что при доступе к файлу от mysql, можно получить доступ к любому файлу, у mysql пользователя есть доступ к, таким образом, обходя основанные на пользователе полномочия файла.

Для обхождения этого можно выполнить запрос непосредственно в вывод любой оболочки/языка, которую Вы используете для выполнения sql с.

Вот *, отклоняют пример

>$ echo "select count(predicate),subject from TableA group by subject"  | mysql -u yourusername -p yourdatabasename > ~/XYZ/outputfile.txt

Но сделайте все это на одной строке без "\" или используйте "\" для выхода из разрыва строки.

Что происходит, вот то, что Вы выполняете запрос в mysql клиент, и он выкладывает результат, затем Вы направляете вывод к файлу. Таким образом, файл никогда не называют из mysql, это называют после mysql выполнения.

Так используйте mysql, чтобы получить информацию и ЗАТЕМ вывести данные в файл от Вашей собственной пользовательской оболочки, и Вы будете в порядке.

Или найдите способ вовлечь себя outfile mysql разрешение, так или иначе.

30
ответ дан 1 December 2019 в 07:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: