The problem is that, from #3, even though the user selects the geojson resource, we're saving just its url. We did this for performance reasons. If we saved the resource's id itself, we'd have to request its URL before being able to load the map every time a user tried to see it.
I'm not sure how to fix it (easily).