[SOLVED] Save custom object from cloud function

I am trying to save the result of this cloud function into my database but it is not storing and not throwing any errors.

What am I doing wrong in order to store the tokenBalance object?

Moralis.Cloud.define("saveTokenBalance", async request => {
  try {
    const tokenBalance = Moralis.Object.extend("TokenBalance");
    const address = request.params.address.toLowerCase();

    logger.info("----------------------------------");
    logger.info("saveTokenBalance " + JSON.stringify(request.params));
    logger.info("----------------------------------");

    const balances = await Moralis.Web3API.account.getTokenBalances({
      address: address
    });

    logger.info("saveTokenBalance balance" + JSON.stringify(balances));

    if (!address || !balances) return;

    tokenBalance.set("address", address);
    tokenBalance.set("balance", balances);

    await tokenBalance.save(null, {useMasterKey:true});
  } catch (error) {
      logger.error(error);
  }
});

LOG

2022-03-21T12:37:05.192Z - undefined
2022-03-21T12:37:05.189Z - saveTokenBalance balance[{"token_address":"0x22b48e1f20043d1db5f2a11cbf1d520a4f20b198","name":"Okuru Token","symbol":"XOT","logo":null,"thumbnail":null,"decimals":"18","balance":"50000000000000"},{"token_address":"0x2efc83c953f7a6a059744270c358edd6162f89d7","name":"Deesse","symbol":"LOVE","logo":null,"thumbnail":null,"decimals":"18","balance":"200000000000000000000000000000"},{"token_address":"0x9f7229af0c4b9740e207ea283b9094983f78ba04","name":"Tadpole","symbol":"TAD","logo":null,"thumbnail":null,"decimals":"18","balance":"100000000000000"},{"token_address":"0xb46bd6f438554ea26e08a33767d496f82adac3ec","name":"Vitalik Shiba Buterin","symbol":"VSHIBA","logo":null,"thumbnail":null,"decimals":"18","balance":"3169927709899472294632439717"},{"token_address":"0x2ee543b8866f46cc3dc93224c6742a8911a59750","name":"Metaverse Dog","symbol":"MVDG","logo":null,"thumbnail":null,"decimals":"18","balance":"10000000000000000000000"},{"token_address":"0xb68f32410a7dd4cf7a1ae18c6b6ddefa2eed80b3","name":"FOMO DAO","symbol":"FOMO","logo":null,"thumbnail":null,"decimals":"18","balance":"23860017673232858579492277957"},{"token_address":"0xed04915c23f00a313a544955524eb7dbd823143d","name":"Alchemy","symbol":"ACH","logo":null,"thumbnail":null,"decimals":"8","balance":"500000000"},{"token_address":"0x4545750f39af6be4f237b6869d4ecca928fd5a85","name":"CryptoTask","symbol":"CTF","logo":null,"thumbnail":null,"decimals":"18","balance":"1980000000000000000"},{"token_address":"0x10e0dcb6338233c60d1d3a714e8b1c1bb74d5b79","name":"KudosToken","symbol":"KUDOS","logo":null,"thumbnail":null,"decimals":"18","balance":"50000000000000000000000000"},{"token_address":"0xcf77b1cd3a5d5a1620077c303d05f4900a3230fe","name":"STAKETH","symbol":"SETH","logo":null,"thumbnail":null,"decimals":"18","balance":"1000000000000000"},{"token_address":"0x6e87921e2ed8f8fe2469ef66ef4ce176282d8977","name":"Lambo","symbol":"Lambo","logo":null,"thumbnail":null,"decimals":"18","balance":"1000000000000000000"},{"token_address":"0x1e1c1bd076c3578c040f33e83edce96861e33ff7","name":"ChainLink Token","symbol":"LINK","logo":null,"thumbnail":null,"decimals":"18","balance":"100000000000000000000"},{"token_address":"0x51bb9c623226ce781f4a54fc8f4a530a47142b6b","name":"Peet ERC20","symbol":"PTE","logo":null,"thumbnail":null,"decimals":"18","balance":"502175771525"},{"token_address":"0x81859801b01764d4f0fa5e64729f5a6c3b91435b","name":"bearn.fi","symbol":"BFIE","logo":null,"thumbnail":null,"decimals":"18","balance":"8888888899999999"},{"token_address":"0x94bccfeefa17a1b9dabc93defdebd4951d864362","name":"RazeNetwork","symbol":"Raze","logo":null,"thumbnail":null,"decimals":"18","balance":"250000000000000000000000"},{"token_address":"0xba6b0dbb2ba8daa8f5d6817946393aef8d3a4487","name":"Hillstone.Finance","symbol":"HSF","logo":null,"thumbnail":null,"decimals":"18","balance":"1000000000000000000"},{"token_address":"0xdacd69347de42babfaecd09dc88958378780fb62","name":"AtariToken","symbol":"ATRI","logo":"https://cdn.moralis.io/eth/0xdacd69347de42babfaecd09dc88958378780fb62.png","thumbnail":"https://cdn.moralis.io/eth/0xdacd69347de42babfaecd09dc88958378780fb62_thumb.png","decimals":"0","balance":"1"}]
2022-03-21T12:37:04.945Z - Ran cloud function coreservices_getWeb3ApiToken for user undefined with:
  Input: {}
  Result: {"status":200,"data":{"success":true,"result":"O148899.1647866224937.0x6129aba558a3c4ef3d95acfb2271a2ac8d34676f6b0a407c845735e75b8ffd73"}}
2022-03-21T12:37:04.918Z - ----------------------------------
2022-03-21T12:37:04.917Z - saveTokenBalance {"address":"0x9845e1909dca337944a0272f1f9f7249833d2d19"}

you can read here about queries: https://docs.moralis.io/moralis-server/database/queries

it looks like a query was not created, and you can also try to add some logging after that return to see if it passes that return or not

Thank you you pointed me towards the solution. As I was trying to save a new obejct, I dont need queries. The issue was, that I forgot to create a new instance after extending the Moralis Object.

   const TokenBalance = Moralis.Object.extend("TokenBalance");
   const tokenBalance = new TokenBalance(); //this was missing
1 Like