Android 如何将一个节点的子节点复制到另一个节点Firebase&;安卓
我有一个包含公司类别的X DB,我想获得类别的子项并将副本发送给AllEmpresas 我的火力基地 我正在使用这段代码,但我不知道如何实现Android 如何将一个节点的子节点复制到另一个节点Firebase&;安卓,android,firebase,firebase-realtime-database,Android,Firebase,Firebase Realtime Database,我有一个包含公司类别的X DB,我想获得类别的子项并将副本发送给AllEmpresas 我的火力基地 我正在使用这段代码,但我不知道如何实现 private void copyRecord(DatabaseReference fromPath, final DatabaseReference toPath) { ValueEventListener valueEventListener = new ValueEventListener() { @Ove
private void copyRecord(DatabaseReference fromPath, final DatabaseReference toPath) {
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
toPath.setValue(dataSnapshot.getValue()).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isComplete()) {
Log.d(TAG, "Success!");
} else {
Log.d(TAG, "Copy failed!");
}
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
fromPath.addListenerForSingleValueEvent(valueEventListener);
}
private void copyRecord(数据库引用fromPath,最终数据库引用toPath){
ValueEventListener ValueEventListener=新的ValueEventListener(){
@凌驾
public void onDataChange(DataSnapshot DataSnapshot){
setValue(dataSnapshot.getValue()).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.isComplete()){
Log.d(标记“Success!”);
}否则{
Log.d(标记“复制失败!”);
}
}
});
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){}
};
fromPath.addListenerForSingleValueEvent(valueEventListener);
}
一旦实现,您的代码将导致无限循环。这是它正常工作的正确方式
private void copyRecord(DatabaseReference fromPath, final DatabaseReference toPath) {
fromPath.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
toPath.setValue(dataSnapshot.getValue().toString()).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.d(TAG, "Success!");
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
}
private void copyRecord(数据库引用fromPath,最终数据库引用toPath){
fromPath.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
toPath.setValue(dataSnapshot.getValue().toString()).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
Log.d(标记“Success!”);
}
});
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){}
});
}
一旦实现,您的代码将导致无限循环。这是它正常工作的正确方式
private void copyRecord(DatabaseReference fromPath, final DatabaseReference toPath) {
fromPath.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
toPath.setValue(dataSnapshot.getValue().toString()).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
Log.d(TAG, "Success!");
}
});
}
@Override
public void onCancelled(DatabaseError databaseError) {}
});
}
private void copyRecord(数据库引用fromPath,最终数据库引用toPath){
fromPath.addListenerForSingleValueEvent(新的ValueEventListener()){
@凌驾
公共void onDataChange(DataSnapshot DataSnapshot){
toPath.setValue(dataSnapshot.getValue().toString()).addOnCompleteListener(新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
Log.d(标记“Success!”);
}
});
}
@凌驾
已取消的公共void(DatabaseError DatabaseError){}
});
}
更好的方法
我选择了使用,它的作品伟大
谢谢大家的支持
const functions = require('firebase-functions');
const admin = require('firebase-admin'); //Importar o Admin SDK para escrever dados na database
admin.initializeApp(functions.config().firebase);
exports.copiarEmpresas = functions.database.ref('/Categorias/{categoria}/{empresa}')
.onWrite((change, context) => {
var snapshot = change.after;
return admin.database().ref('AllEmpresas').child(snapshot.key).set(snapshot.val());
});
更好的方法
我选择了使用,它的作品伟大
谢谢大家的支持
const functions = require('firebase-functions');
const admin = require('firebase-admin'); //Importar o Admin SDK para escrever dados na database
admin.initializeApp(functions.config().firebase);
exports.copiarEmpresas = functions.database.ref('/Categorias/{categoria}/{empresa}')
.onWrite((change, context) => {
var snapshot = change.after;
return admin.database().ref('AllEmpresas').child(snapshot.key).set(snapshot.val());
});
可能的重复可能的重复