Sample code for 30+ languages & platforms
SQL Server

Firebase DELETE - Removing Data

See more Firebase Examples

Uses the DELETE method to delete data. The data used in this example is at Chilkat Firebase Pigs Database, and is shown here:

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @iTmp0 int
    -- Important: Do not use nvarchar(max).  See the warning about using nvarchar(max).
    DECLARE @sTmp0 nvarchar(4000)
    DECLARE @success int
    SELECT @success = 0

    -- Uses the DELETE method to delete a Firebase record.

    -- This example requires the Chilkat API to have been previously unlocked.
    -- See Global Unlock Sample for sample code.

    -- This example assumes a JWT authentication token, if required, has been previously obtained.
    -- See Get Firebase Access Token from JSON Service Account Private Key for sample code.

    -- Load the previously obtained Firebase access token into a string.
    DECLARE @fac int
    EXEC @hr = sp_OACreate 'Chilkat.FileAccess', @fac OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    DECLARE @accessToken nvarchar(4000)
    EXEC sp_OAMethod @fac, 'ReadEntireTextFile', @accessToken OUT, 'qa_data/tokens/firebaseToken.txt', 'utf-8'
    EXEC sp_OAGetProperty @fac, 'LastMethodSuccess', @iTmp0 OUT
    IF @iTmp0 <> 1
      BEGIN
        EXEC sp_OAGetProperty @fac, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @fac
        RETURN
      END

    DECLARE @rest int
    EXEC @hr = sp_OACreate 'Chilkat.Rest', @rest OUT

    -- Make the initial connection (without sending a request yet).
    -- Once connected, any number of requests may be sent.  It is not necessary to explicitly
    -- call Connect before each request.  
    EXEC sp_OAMethod @rest, 'Connect', @success OUT, 'chilkat.firebaseio.com', 443, 1, 1
    IF @success <> 1
      BEGIN
        EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @fac
        EXEC @hr = sp_OADestroy @rest
        RETURN
      END
    DECLARE @authGoogle int
    EXEC @hr = sp_OACreate 'Chilkat.AuthGoogle', @authGoogle OUT

    EXEC sp_OASetProperty @authGoogle, 'AccessToken', @accessToken
    EXEC sp_OAMethod @rest, 'SetAuthGoogle', @success OUT, @authGoogle

    -- Chilkat's sample data (pig-rescue data) is publicly readable at: https://chilkat.firebaseio.com/.json
    -- This data is publicly readable, but not writable.  You'll need to 
    -- run against your own database..

    -- We're going to delete a pig we previously added.  The push ID of that pig was -KI3pT33wKauiMxY4QTB,
    -- so the path will be "/pig-rescue/animal/-KI3pT33wKauiMxY4QTB.json"

    DECLARE @jsonResponse nvarchar(4000)
    EXEC sp_OAMethod @rest, 'FullRequestNoBody', @jsonResponse OUT, 'DELETE', '/pig-rescue/animal/-KI3pT33wKauiMxY4QTB.json'
    EXEC sp_OAGetProperty @rest, 'LastMethodSuccess', @iTmp0 OUT
    IF @iTmp0 <> 1
      BEGIN
        -- Something happened in the communications (either no request was sent, or no response was received.
        -- (The Chilkat REST API also has lower-level methods where an app can send the request in one call,
        -- and then receive the response in another call.)
        EXEC sp_OAGetProperty @rest, 'LastErrorText', @sTmp0 OUT
        PRINT @sTmp0
        EXEC @hr = sp_OADestroy @fac
        EXEC @hr = sp_OADestroy @rest
        EXEC @hr = sp_OADestroy @authGoogle
        RETURN
      END

    -- Check the response status code.   A 200 response status indicates success.
    EXEC sp_OAGetProperty @rest, 'ResponseStatusCode', @iTmp0 OUT
    IF @iTmp0 <> 200
      BEGIN
        EXEC sp_OAGetProperty @rest, 'ResponseStatusText', @sTmp0 OUT
        PRINT @sTmp0

        PRINT @jsonResponse

        PRINT 'Failed.'
        EXEC @hr = sp_OADestroy @fac
        EXEC @hr = sp_OADestroy @rest
        EXEC @hr = sp_OADestroy @authGoogle
        RETURN
      END


    PRINT 'Success.'

    EXEC @hr = sp_OADestroy @fac
    EXEC @hr = sp_OADestroy @rest
    EXEC @hr = sp_OADestroy @authGoogle


END
GO