小编b-f*_*-fg的帖子

添加新字段或更改所有Firestore文档的结构

考虑一下users.集合中的每个文档都有nameemail作为字段.

{
  "users": {
    "uid1": {
      "name": "Alex Saveau",
      "email": "saveau.alexandre@gmail.com"
    },
    "uid2": { ... },
    "uid3": { ... }
  }
}
Run Code Online (Sandbox Code Playgroud)

现在考虑一下,通过这个有效的Cloud Firestore数据库结构,我启动了我的第一个版本的移动应用程序.然后,在某些时候,我意识到我想要包括另一个领域,如last_login.

在代码中,使用Java从Firestore DB读取所有用户文档将完成

FirebaseFirestore.getInstance().collection("users").get()
        .addOnCompleteListener(new OnCompleteListener<QuerySnapshot>() {
            @Override
            public void onComplete(@NonNull Task<QuerySnapshot> task) {
                if (task.isSuccessful()) {
                    for (DocumentSnapshot document : task.getResult()) {
                        mUsers.add(document.toObject(User.class));
                    }
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)

该类User现在包含的地方name,emaillast_login.

由于新的Userfield(last_login)不包含在DB中存储的旧用户中,因此应用程序崩溃,因为新User类需要一个由该方法last_login返回的字段.nullget()

包含 …

java database android google-cloud-firestore

10
推荐指数
3
解决办法
4459
查看次数

具有多个批次读写的云功能http请求

我有一个由http请求触发的云功能,它打算执行以下操作:

  1. 根据查询获取一定数量的文档.
  2. 对于查询的每个文档执行读取操作.
  3. 从(2)获取新文档后,执行一些读/写操作(从子集合中删除,将文档添加到另一个子集合,并更新根集合上的文档).

因此,我需要等待(2)和(3)的循环然后执行批处理操作的东西.

下面是我目前的代码,当我在本地测试函数时,它是有用的.但是我不能将它部署到Firebase,因为它承诺了诸如"每次必须返回一个承诺"和"避免嵌套承诺"之类的错误.

exports.finishEvents =  functions.https.onRequest((req, res) => {
  const eventsRef = admin.firestore().collection('events');
  var currentTime = new Date().getTime();
  var currentTimeMinus1h = currentTime - 3600000;

  console.log('----- finishEvents started -----')

  const queryRef = eventsRef.where('finished', '==', false).where('date', '<=', new Date(currentTimeMinus1h)).get().then(function(querySnapshot){
    if (querySnapshot.size > 0) {
        querySnapshot.forEach(function(doc) {

          var owner_id = doc.data().owner_id;
          var event_id = doc.id;
          console.log(owner_id, event_id);

          var userEventOwnerGoingRef = admin.firestore().collection("user_events").doc(owner_id).collection('going').doc(event_id);
          userEventOwnerGoingRef.get().then(doc2 => {
            if (!doc2.exists) {
              console.log('No such document!');
            } else {
              console.log('Document data:', doc2.data());
              var goingIds = doc.data().going_ids; …
Run Code Online (Sandbox Code Playgroud)

node.js firebase google-cloud-functions google-cloud-firestore

8
推荐指数
1
解决办法
565
查看次数

使用 Firestore 进行多路径更新

我读到的有关 Firestore 的任何地方都说它比实时 Firebase 需要更少的非规范化。我猜这是因为它是一个文档数据库,您可以在其中指向特定文档并仅检索该数量的数据(?)。

但是,我想知道如何管理非规范化仍然有用的情况(例如,我们可以通过在其他文档上存储相同的值来将查询保存到包含完整信息数据的文档)。如果需要更新该值,是否有类似实时 Firebase 多路径更新(更新每个文档的值)来解决此问题?

firebase firebase-realtime-database google-cloud-firestore

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

使用Firebase-UI的Firestore聊天应用(Android)

我正在尝试使用Cloud Firestore的Firebase-UI库创建聊天。 这个 github仓库包含我正在使用的相关代码。问题与查询的顺序有关。

看到查询指定为:

Query sChatQuery = sChatCollection.orderBy("timestamp").limit(50);
Run Code Online (Sandbox Code Playgroud)

但是,我以正确的顺序(从旧到新)获得了最旧的50条消息,而不是最新的消息。另一方面,我可以使用以下查询:

Query sChatQuery = sChatCollection.orderBy("timestamp", Query.Direction.DESCENDING).limit(50);
Run Code Online (Sandbox Code Playgroud)

这会检索50条最新消息,但顺序错误(最新消息排在最前面,最旧消息排在最下面)。因此,我不知道该怎么做。

我可以在本地再次反转查询的结果,但是我无法弄清楚该怎么做(我已经走过了FirebaseUI库,但运气不佳)。

编辑

chat对于events集合中的每个事件,我都有其子集合:

events/event_doc/chat/chat_doc

在此处输入图片说明

我想得到如下消息:

Message 1
Message 2
Message 3
Message 4
...
Run Code Online (Sandbox Code Playgroud)

使用默认顺序,我会收到如上所示的消息,但是limit说明将快照从1减少到50,并且Message 51(最新的)快照未被检索。

java android firebase firebaseui google-cloud-firestore

5
推荐指数
1
解决办法
1389
查看次数

5
推荐指数
1
解决办法
115
查看次数

具有自定义丢失功能的多输入多输出CNN

我有一组2D输入阵列m x nA,B,C,我必须预测两个2D输出数组即d,e针对我有预期值.如果您愿意,可以将输入/输出视为灰色图像.

由于空间信息是相关的(这些实际上是2D物理域),我想使用卷积神经网络来预测de.我的设计(尚未测试)如下:

在此输入图像描述

因为我有多个输入,我想我应该使用多个列(或分支)来为每个输入找到不同的功能(它们看起来相当不同).这些列中的每一列都遵循分段中使用的编码 - 解码架构(参见SegNet):Conv2D块涉及卷积+批量归一化+ ReLU层.Deconv2D涉及解卷积+批量标准化+ ReLU.

然后,我可以通过连接,平均或取最大值来合并每列的输出.为了获得m x n我看到的每个输出的原始形状,我可以使用1 x 1内核卷积来完成此操作.

我想预测单层的两个输出.从网络结构的角度来看还可以吗?最后,我的损失函数取决于输出本身与目标相比加上我想要强加的另一种关系.

我希望对此有一些专家意见,因为这是我的第一次CNN设计,我不确定它是否有意义,因为它现在和/或是否有更好的方法(或网络架构)来解决这个问题.

我最初在数据科学中发布了这个,但我没有得到太多反馈.我现在在这里发布它,因为这些主题有一个更大的社区,我将非常感谢接收网络架构之外的实施技巧.谢谢.

neural-network deep-learning conv-neural-network keras tensorflow

5
推荐指数
1
解决办法
803
查看次数

MPI Fortran WTIME无法正常运行

我正在使用Fortran MPI进行编码,因此需要获取程序的运行时间。因此,我尝试使用WTIME()函数,但得到了一些奇怪的结果。

部分代码如下所示:

    program heat_transfer_1D_parallel
    implicit none   
    include 'mpif.h'

    integer myid,np,rc,ierror,status(MPI_STATUS_SIZE)

    integer                       :: N,N_loc,i,k,e !e = number extra points (filled with 0s)
    real                          :: time,tmax,start,finish,dt,dx,xmax,xmin,T_in1,T_in2,T_out1,T_out2,calc_T,t1,t2
    real,allocatable,dimension(:) :: T,T_prev,T_loc,T_loc_prev

    call MPI_INIT(ierror)
    call MPI_COMM_SIZE(MPI_COMM_WORLD,np,ierror)
    call MPI_COMM_RANK(MPI_COMM_WORLD,myid,ierror)
...
    t1 = MPI_WTIME()    
    time = 0.
    do while (time.le.tmax)
...
    end do
...
    call MPI_BARRIER(MPI_COMM_WORLD,ierror)
    t2 = MPI_WTIME()        
    call MPI_FINALIZE(ierror)   

    if(myid.eq.0) then
        write(*,"(8E15.7)") T(1:N-e)
        write(*,*)t2
        write(*,*)t1
    end if
Run Code Online (Sandbox Code Playgroud)

t1和t2的输出值相同且非常大:1.4240656E + 09有什么想法吗?非常感谢。

parallel-processing fortran hpc mpi

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

numpy.corrcoef() 对返回值的疑问

我需要两个矩阵 X,Y 之间的皮尔逊相关系数。如果我运行代码corr=numpy.corrcoef(X,Y)我的输出是一个具有相关系数的矩阵。但是我需要一个值来表示两个矩阵之间的相关性。

我刚刚在 kennytm 的答案中看到,要拥有一个值,我应该写numpy.corrcoef(X,Y)[1,0]

这个解决方案有效,但我不明白方括号内的数字意味着什么,也不明白为什么将它们相加后我会得到一个值。

我将 1 和 0 解释为系数的限制,但是矩阵内的所有系数会发生什么情况?对它们进行什么类型的计算以获得单个值?例如,如果我更改方括号内的数字[1,-1]相关性、反相关性),则更改的值corr会导致我很困惑应该在括号内使用哪些数字。

numpy correlation python-3.x pearson-correlation

2
推荐指数
1
解决办法
3190
查看次数

将文本框转换为浮动

我一直在寻找不同的方法,但我仍然得到同样的错误:

我尝试过的:

float e = (float)Convert.ToDouble(e_textBox.Text);
bool valid = float.TryParse(e_textBox.Text.ToString(), out e);
Run Code Online (Sandbox Code Playgroud)

我收到这个错误:

Error   1   Cannot implicitly convert type 'float' to 'System.EventArgs'
Run Code Online (Sandbox Code Playgroud)

我做错了吗?谢谢.

c# double textbox

0
推荐指数
1
解决办法
2万
查看次数