gpt4 book ai didi

android - 如何在 Firebase 数据库 Android 中添加新的 child

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:18:37 24 4
gpt4 key购买 nike

我正在尝试在我的 Firebase Android 应用程序中使用 DatabaseReference 添加一个新的 child 。我在做:

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference() 
mDatabase.child("childToAdd").setValue(1);

我可以使用常规的 Firebase 引用来做到这一点,因为如果它不存在,它会将 child 添加到数据库中。
我怎样才能使用 DatabaseReference 来做到这一点?

编辑:感谢所有建议,但我在使用以下代码时遇到问题。当它进入 if block 时,它不会将数据推送到数据库中。

https://gist.github.com/rounaksalim95/a5cba332400c6caf8320f15b0cbf06e8

当我使用旧的 Firebase 引用尝试此操作时,我得到错误代码 11(从 firebase runloop 调用的用户代码),而使用新的数据库引用时,我得到错误代码 -3(尽管我没有安全规则,但 PermissionDenied)。

更新:

我使用单值事件监听器让它做我想做的事:

Firebase userRef = new Firebase(BASEURL + "userData");

userRef.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if (dataSnapshot.child(user.getUid()).getValue() == null) {
userRef.child(user.getUid()).setValue(1);
}
}

@Override
public void onCancelled(FirebaseError firebaseError) {

}
});

但是数据库引用不允许我添加这样的值。

最佳答案

您需要调用 push() 为新数据生成唯一键:

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference() 
mDatabase.push().setValue(1);

这会将新值附加到列表的末尾。

通过组合 push()child() 方法,您可以在数据库中创建多个子列表:

mDatabase.child("numbers").push().setValue(1);
mDatabase.child("numbers").push().setValue(53);
mDatabase.child("numbers").push().setValue(42);

mDatabase.child("letters").push().setValue("a");
mDatabase.child("letters").push().setValue("z");
mDatabase.child("letters").push().setValue("c");

参见 append to a list of data 部分在 Firebase 文档中。

关于android - 如何在 Firebase 数据库 Android 中添加新的 child ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40013089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com