Вы не можете получить чей-либо пароль через Аутентификацию Firebase. Это было бы огромной дырой в безопасности, не так ли? Изображение профиля должно быть доступно, если пользователь предоставил его через Facebook.
Можно смоделировать это рядом "свободных" прямоугольников, начиная с единственного с координатами 0,0, размер (x, y). Каждый раз необходимо добавить еще один прямоугольник, выбрать один из остающихся "свободных" прямоугольников, генерировать новый прямоугольник (с верхней левой координатой и измерить таким образом, что это будет полностью содержаться), и разделите тот прямоугольник, а также любой другой перекрывающийся "свободный" прямоугольник, такой, что дети выражают остающееся свободное пространство. Это приведет к от 0 до 4 новых прямоугольников (0, если новый прямоугольник был точно размером старого свободного прямоугольника; 4, если это находится в середине и так далее). Со временем Вы будете получать все больше меньших и меньших зон свободной торговли, таким образом, прямоугольники, которые Вы создаете, будут меньшими также.
Хорошо, не очень тщательно продуманное объяснение, легче показать на электронной доске. Но модель является той, для которой я использовал для нахождения стартового местоположения недавно cut'n вставляемые компоненты графического интерфейса пользователя; легко отслеживать доступные блоки экрана и выбрать (например), оставленный или самый верхний такая область.
Вот достойная статья о 2-х алгоритмах упаковки: http://www.devx.com/dotnet/Article/36005
Вы будете обычно хотеть своего рода алгоритм с помощью эвристики для достижения достойных результатов. Простым (но неоптимальный) решение был бы первый пригодный алгоритм.
Я использовал этот Прямоугольный алгоритм Упаковки в одном из моих приложений, доступных как исходные файлы C#.
Алгоритм инициализируется с размером панели, затем Вы выполняете итерации через все прямоугольники и получаете их положение. Порядок прямоугольников может влиять на результат, в зависимости от упаковщика.
Или ведите список прямоугольников, уже добавленных, и создайте алгоритм, который выясняет, куда поместить новый прямоугольник на основе того списка. Можно создать основной Прямоугольный класс для содержания информации о прямоугольниках.
Не должно быть так твердо создать пользовательский алгоритм.