相关疑难解决方法(0)

Flutter 应用程序中 firebase 数据库上的 ValueEventListener

我正在学习 Flutter 中的 android 应用程序开发。我从颤振聊天应用程序示例开始。在启用数据同步部分,解释了如何使用 Firebase 数据库,如下所示。

final DBreference = FirebaseDatabase.instance.reference().child('messages');

另外,push()set()方法都工作正常。

当我尝试使用ValueEventListener. 在DBreference上面创建具有类似于没有方法addListenerForSingleValueEventaddValueEventListener

我的主要目标是检索 SO 答案中解释的 child 值 Retrieving child value -firebase-Checking if a specific value exists in the firebase database

我得到 undefined class ValueEventListener
如果我创建一个新的ValueEventListener,我尝试通过导入

import 'com.google.firebase.database.ValueEventListener';

我也无法导入此路径。相同的错误addListenerForSingleValueEventaddValueEventListener

我正在使用 android studio 3.1

android firebase firebase-realtime-database flutter

6
推荐指数
1
解决办法
3975
查看次数

检查 Firebase 实时数据库中是否已存在用户

我得到了Alex Mamo 的解决方案,以检查我的数据库中是否存在唯一值,但快照始终为空。解决方案在这里:

DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userNameRef = rootRef.child("Users").child("Nick123");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
    if(!dataSnapshot.exists()) {
        //create new user
    }
}

    @Override
    public void onCancelled(DatabaseError databaseError) {}
};
userNameRef.addListenerForSingleValueEvent(eventListener);
Run Code Online (Sandbox Code Playgroud)

我的数据库如下所示:

users
    (auto-generated push token ID)
        fullname
        username
        gender
        ...
Run Code Online (Sandbox Code Playgroud)

我不知道这是否是正确的方法,但我使用了 push() 方法将用户对象添加到数据库中,并且此方法会像上面一样生成推送令牌 ID。

那么,为了不创建重复的用户,我应该对上述解决方案进行哪些更改?有更好的方法来做到这一点吗?也许就像使用一些 firebase auth 方法检查 firebase uid 一样?

更新 我的数据库截图: 数据库 正如您所看到的,“users”下面的字符串与用户的 uid 不同。

java android firebase firebase-realtime-database

3
推荐指数
2
解决办法
9659
查看次数