gpt4 book ai didi

java - 我想从 firebase 检索当前用户的 ID 并将其写入另一个节点,但它只是不断拒绝

转载 作者:行者123 更新时间:2023-12-01 19:11:54 26 4
gpt4 key购买 nike

所以基本上我创建了一个字符串mojID,它等于firebase的当前用户,我想将它作为节点中的子节点传递,但它说它是一个空指针异常,我已经使用过它位于不返回错误的代码的其他部分。

我附上了一些代码。

final DatabaseReference chatRef1 = FirebaseDatabase.getInstance().getReference("ChatLista");
chatRef1.child(mojID);
chatRef1.child(userID);
chatRef1.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

if(!dataSnapshot.exists()){
chatRef1.child("id").setValue(userID);

}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

final DatabaseReference chatRef2 = FirebaseDatabase.getInstance().getReference("ChatLista");

chatRef2.child(userID);
chatRef2.child(mojID);

chatRef2.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {

if(!dataSnapshot.exists()){

chatRef2.child("id").setValue(mojID);

}
}

@Override
public void onCancelled(@NonNull DatabaseError databaseError) {

}
});

然后是获取 ID 的函数:

private void ProvjeriStatus(){
FirebaseUser user = firebaseAuth.getCurrentUser();
if(user!=null){
//user ulogovan
mojID = (String)user.getUid();
}
//ako nije vraca na login
else {
startActivity(new Intent(this,login.class));
finish();
}
}

我什至尝试对其进行强制转换,如您所见,它只是说我不需要强制转换,因为它已经是一个字符串?那为什么会返回null呢?我想到的唯一解释是它是一个对象而不是字符串,因此 .child 希望将字符串作为参数而不是对象。

最佳答案

您可以通过FirebaseUser添加UserId..您可以引用下面的代码..也许会有帮助 你

 FirebaseUser currentFirebaseUser;
DatabaseReference databaseReference;

currentFirebaseUser = FirebaseAuth.getInstance().getCurrentUser();
databaseReference = FirebaseDatabase.getInstance().getReference();

databaseReference.child("Users").child(currentFirebaseUser.getUid()).child("User
Id").setValue(currentFirebaseUser.getUid());

如果你想从数据库中检索UserId请引用下面的代码..

DatabaseReference myRef = database.getReference("Users");

myRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
if ((dataSnapshot.child(currentFirebaseUser.getUid()).child("UserId").getValue() == null)) {
databaseReference.child("Users").child(currentFirebaseUser.getUid())
.child("UserId").setValue(currentFirebaseUser.getUid());
} else {
String Id= (String) dataSnapshot.child(currentFirebaseUser.getUid()).child("UserId").getValue();

}

关于java - 我想从 firebase 检索当前用户的 ID 并将其写入另一个节点,但它只是不断拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59473493/

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