Немного переверни проблему на голове. Когда пользователь входит в систему, извлекает его список друзей и сохраняет числовые идентификаторы facebook в свойстве списка объекта пользователя. (Вы также можете использовать индексный объект ... посмотрите на доклад Бретта Слаткина по поводу разветвления в GAE.)
Что-то вроде
class User:
friend_ids = db.ListProperty()
Когда новый пользователь входит в систему, просто выполните запрос и отфильтруйте friend_ids = :id
. Это должно дать вам список существующих пользователей, которые являются друзьями вашего текущего пользователя . Который я считаю, на самом деле то, что вы хотите.
Пользовательский запрос, отфильтрованный по свойству списка, вернет пользователя, если запрашиваемый идентификатор содержится в списке, если вы с ним не знакомы. Документы здесь .