RealmJS - Displays proxy object instead of list of objects

This is a consequence of how Realm objects work (as well as Lists and Results) - instead of hydrating data from the database and deserializing (potentially) a ton of objects, Realm gives you lazily-loaded objects and collections. Realm.objects('Car') doesn't return a JavaScript array, but a Results object - it still behaves exactly like an array, but it's not implemented using the built-in array object. That's why it doesn't look like an array of objects in the Chrome console, even though it behaves the same.

You can, however, eagerly read a Realm collection in an Array with Array.from(realm.objects('Car')) and that will visualize better in the debugger.

Background

"Proxy" objects are the corner-stone of Realm and its zero-copy philosophy. All the Realm SDKs are implemented the same way - instead of plain objects subject to serialization and deserialization, you get proxy objects that access the database directly.

In realm-js the actual proxying mechanism works differently based on whether your code runs on React Native, Node.js, or the React Native Chrome debugger, so the implementation details of these proxies are going to differ.

The problem with all this is that it doesn't display as nicely in a JavaScript debugger. Unfortunately I'm not aware of a way to influence the way Chrome displays objects in the debugger.

Source: I'm a realm-js contributor.