Существует observe
, который постоянно уведомляет каждый раз, когда происходит обновление в базе данных. И есть observeSingleEvent
, который будет предоставлять вам данные только по запросу.
https://firebase.google.com/docs/database/ios/read-and-write
А также, ваша ссылка на Geofire будет уведомлять вас о каждом обновлении, если вы не хотите, чтобы это делалось, удалите его следующим образом:
«Если вы не заинтересованы в получении обновлений для новых / перемещающихся пользователей после первоначального запроса, это также отличный момент для удаления ваш наблюдатель, позвонив по removeObserverWithFirebaseHandle
или removeAllObservers
. "
в вашем случае это сообщения, и это было упомянуто здесь: https://stackoverflow.com/a/50722984/8869493
Сделайте , в то время как True
Внутри вашего для цикла, поставьте свой , попробуйте
код внутри, и разбить из этого , а
цикла только когда ваш код добивается успеха.
for i in range(0,100):
while True:
try:
# do stuff
except SomeSpecificException:
continue
break
я недавно работал со своим Python на решении этой проблемы, и я рад совместно использовать его с stackoverflow посетителями, дайте обратную связь, если это необходимо.
print("\nmonthly salary per day and year converter".title())
print('==' * 25)
def income_counter(day, salary, month):
global result2, result, is_ready, result3
result = salary / month
result2 = result * day
result3 = salary * 12
is_ready = True
return result, result2, result3, is_ready
i = 0
for i in range(5):
try:
month = int(input("\ntotal days of the current month: "))
salary = int(input("total salary per month: "))
day = int(input("Total Days to calculate> "))
income_counter(day=day, salary=salary, month=month)
if is_ready:
print(f'Your Salary per one day is: {round(result)}')
print(f'your income in {day} days will be: {round(result2)}')
print(f'your total income in one year will be: {round(result3)}')
break
else:
continue
except ZeroDivisionError:
is_ready = False
i += 1
print("a month does'nt have 0 days, please try again")
print(f'total chances left: {5 - i}')
except ValueError:
is_ready = False
i += 1
print("Invalid value, please type a number")
print(f'total chances left: {5 - i}')
Самый прочищий способ будет явно установлен I
. Например:
i = 0
while i < 100:
i += 1
try:
# do stuff
except MyException:
continue
Увеличивайте вашу величину петли только тогда, когда пункт TRURE удается