1

私は、次のようなデータ構造をしている:残念ながら、「日」は、以下のコードを使用してデータベースから削除されませんノードはFirebaseデータベースから削除されませんか?

enter image description here

私の現在のコード:

const functions = require('firebase-functions'); 
const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 

    exports.deleteOldItems = functions.database.ref('/path/to/items/{pushId}') //irrelevant to the question 
    .onWrite(event => { 
     var ref = event.data.ref.parent; // reference to the items 
     var now = Date.now(); 
     var cutoff = now - 2 * 60 * 60 * 1000; 
     var oldItemsQuery = ref.orderByChild('timestamp').endAt(cutoff); 

    return oldItemsQuery.once('value', function(snapshot) { 
    // create a map with all children that need to be removed 
    var updates = {}; 
    snapshot.forEach(function(child) { 
     updates[child.key] = null 
    }); 
    // execute all updates in one go and return the result to end the function 
    return ref.update(updates); 
    }).then(function() {; 
    return functions.database.ref('/days').remove(); // /days doesn't get removed! 
    }); 

    }); 
+0

あなたはスラッシュと子法なしにしようとしましたか? functions.database.ref.child( 'days')。remove(); –

+0

@MaduraPradeepはい、私はそれを試みました。それは動作しません。賞金は問題を解決する答えにすぐに授与されます! –

+0

Firebaseの機能の代わりに、Firebaseクラスを使用します。 ref =新しいFirebase( "myfirebase.com"); ref.child(key).remove(); –

答えて

2

あなたがこれを行うことができます:

let updates = {}; 
updates['/days'] = null; 

firebase.database().ref().update(updates); 

を参照してください "の更新やデータを削除" docsに。あなたのコードで

.then(function() {; 
    let updates = {}; 
    updates['/days'] = null; 

    return firebase.database().ref().update(updates) 
}); 

編集:このような何かを試してみてください:

const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 
const defaultDatabase = admin.database(); 

... 

let updates = {}; 
updates['/days'] = null; 
defaultDatabase.ref().update(updates); 

参考:https://firebase.google.com/docs/database/admin/start

関連する問題